我有一个基本上可以做到这一点的程序
while(1)
FindFirstFile()
if file found
CreateFile()
DeleteFile()
但是,有时 CreateFile 会报告 ERROR_FILE_NOT_FOUND,即使 FindFirstFile 找到了文件!DeleteFile 是否保证文件在返回后不会出现在目录列表中?
您可能会遇到 Raymond Chen 在他的博客中描述的问题。
基本上,DeleteFile()
是“某种”异步 - 如果您要删除的文件上有任何未完成的文件句柄,文件系统只是将文件标记为“要删除”,但它实际上并没有从目录列表中消失,直到它的最后一个打开句柄已关闭 - 即使DeleteFile
返回成功。