2012-05-22 18 views
0

可以说我有一个文件句柄作为WinAPI CreateFile的结果。它未使用FILE_FLAG_DELETE_ON_CLOSE打开。只用一个句柄删除一个文件

有没有办法删除只有句柄的文件,而没有文件名?

感谢

+0

您可能可以使用[此问题](http://stackoverflow.com/questions/65170/how-to-get-name-associated-with-open-handle)中的信息来获取要使用的文件名删除文件 – user786653

回答

1

我不知道你是否可以专门单独删除手柄上的依据的文件,但你总是可以用手柄来检索文件名,如this MSDN article描述,然后调用的DeleteFile( )。

3

如果您在Windows Vista或更高版本上运行,SetFileInformationByHandle()将允许您通过设置信息类FileDispositionInfo来完成此操作。

该操作的最终结果是,句柄现在将被标记为在关闭时删除 - 当文件的最后一个句柄关闭时,该文件将被删除。

对于旧版本的Windows,NTDLL导出NtSetInformationFile(),它可以让你做同样的事情。