2012-05-22 4 views
0

WinAPI CreateFile의 결과로 파일 핸들이 있다고 가정 해 보겠습니다. FILE_FLAG_DELETE_ON_CLOSE으로 열리지 않았습니다.그냥 핸들을 사용하여 파일 삭제

핸들이있는 파일을 파일 이름없이 삭제할 수 있습니까?

감사

+0

아마도 [이 질문] (http://stackoverflow.com/questions/65170/how-to-get-name-associated-with-open-handle)의 정보를 사용하여 사용할 파일 이름을 얻을 수 있습니다 DeleteFile – user786653

답변

1

특별히 핸들만을 기준으로 파일을 삭제할 수 있을지는 모르겠지만, 당신은 항상 (DeleteFile을 호출 한 후 this MSDN article에 설명 된대로 파일 이름을 검색하기 위해 핸들을 사용하고, 수).

3

Windows Vista 이상에서 실행하는 경우 SetFileInformationByHandle()은 정보 클래스 FileDispositionInfo을 설정하여이 작업을 수행 할 수 있습니다.

이 작업의 최종 결과는 닫을 때 핸들이 삭제로 표시된다는 것입니다. 파일의 마지막 핸들이 닫히면 파일이 삭제됩니다.

이전 버전의 Windows의 경우 NTDLL은 동일한 작업을 수행 할 NtSetInformationFile()을 내 보냅니다.

관련 문제