5

我有一个基本上可以做到这一点的程序

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

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

4

1 回答 1

3

您可能会遇到 Raymond Chen 在他的博客中描述的问题。

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

于 2013-09-25T07:09:54.113 回答