DeleteFile和FindFirstFile如何交互?

时间:2013-09-25 06:12:18

标签: c winapi

我有一个基本上可以执行此操作的程序

while(1)
  FindFirstFile()
  if file found
    CreateFile()
    DeleteFile()

但是,有时CreateFile会报告ERROR_FILE_NOT_FOUND,即使FindFirstFile找到了一个文件! DeleteFile是否保证文件在返回后不会显示在目录列表中?

1 个答案:

答案 0 :(得分:3)

您可能会遇到Raymond Chen在his blog中描述的问题。

基本上,DeleteFile()是“一种”异步 - 如果你要删除的文件上有任何未完成的文件句柄,文件系统只是将文件标记为“要删除”,但它不是实际上从目录列表中消失,直到它的最后一个打开句柄被关闭 - 即使DeleteFile返回成功。