소연의_개발일지
article thumbnail

DeleteFile() 함수는 Windows API에서 파일을 삭제할 때 사용하는 함수입니다.

이 함수는 지정된 파일을 삭제하고 성공 여부를 반환합니다.

 

주요 요소

  1. 인자 (Parameters):
    DeleteFile() 함수는 하나의 인자를 받습니다. 이는 삭제할 파일의 경로를 나타내는 문자열(LPCWSTR 또는 LPCTSTR)입니다.
    • 경로는 절대 경로 또는 상대 경로일 수 있으며, 유니코드 문자열(L"")로 표현해야 합니다.
  2. 반환값 (Return Value):
    • 성공 시: TRUE를 반환.
    • 실패 시: FALSE를 반환하며, GetLastError()를 통해 오류 정보를 확인할 수 있습니다.

 

사용 예시

#include <windows.h>
#include <iostream>

int main() {
    // 삭제할 파일 경로 (예: "C:\\path\\to\\file.txt")
    LPCWSTR filePath = L"C:\\path\\to\\file.txt";

    // 파일 삭제 시도
    if (DeleteFile(filePath)) {
        std::wcout << L"파일이 성공적으로 삭제되었습니다." << std::endl;
    } else {
        // 실패 시 오류 코드 출력
        DWORD dwError = GetLastError();
        std::wcout << L"파일 삭제 실패. 오류 코드: " << dwError << std::endl;
    }

    return 0;
}

오류 처리

DeleteFile()이 실패할 경우, GetLastError()를 사용하여 정확한 오류를 확인할 수 있습니다. 오류 코드에 따른 원인을 파악하여 문제를 해결할 수 있습니다.

 

* Deletefile로 삭제가 안되는 경우 이런 식으로 출력해서 오류 코드를 반환하여 확인해봐도 됩니다.

  if( DeleteFile( szFileName ) == FALSE )
  {
     printf( "DeleteFile(%s) error(%d)\n", szFileName, GetLastError() );
  }

 

https://learn.microsoft.com/ko-kr/windows/win32/debug/system-error-codes--0-499-

 

시스템 오류 코드(0-499)(WinError.h) - Win32 apps

WinError.h 헤더 파일에 정의된 오류 코드 0-499에 대해 설명하며 개발자를 위한 것입니다.

learn.microsoft.com

에서 시스템 오류 코드를 확인할 수 있습니다.

 

 


저는 오류코드 32가 나왔는데, 이는 파일을 사용 중이기 때문에 프로그램에서 접근하지 못하는 오류였습니다.

file.Close()를 안해줘서 삭제를 못해주는 거였습니다..

 그래서 파일을 닫아주고 해결완~~

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!