无法删除目录

时间:2010-05-11 10:20:06

标签: winapi

显然我以前从未使用win32 sdk删除目录,因为它显然是一项不可能完成的任务。我已经尝试过任何东西 - RemoveDirectory, 使用FO_DELETE等进行SHFileOperation

目前我在一个线程中调用CreateDirectory,启动另一个线程,将一些文件复制到新线程中的此目录,然后删除新线程中目录中的所有文件,然后返回创建该目录的原始线程,尝试删除现在空的目录,它失败了。当我尝试删除目录时,该目录确实是空的,但它没有任何区别。我认为整个线程方面是无关紧要的,因为在某一点上,一切都在一个线程中,并且它不起作用。我目前正在CreateDirectory上设置一个SecurityAttributes结构来授予每个人访问权限,但它没有任何区别。过去的RemoveDirectory在GetLastError上返回'32',我认为这是共享冲突。

但即使我只是尝试从命令行中删除空目录,它也拒绝说:“进程无法访问该文件,因为它正被另一个进程使用。” 直到我关闭创建目录的整个应用程序。 (注意:目录是在GetTempPath中创建的。)

1 个答案:

答案 0 :(得分:4)

错误32确实是“进程无法访问该文件,因为它正被另一个进程使用。”

您是否正在使用FindFirstFile()制作副本清单? - 这将锁定目录,直到FindClose()