检查目录树是否可以在不实际开始删除的情况下删除

Check if a directory-tree can be deleted without actually starting to delete it

本文关键字:删除 开始 情况下 不实际 目录树 是否 检查      更新时间:2023-10-16

在我的程序中,我需要能够删除带有旧输出的目录。但里面的一些文件可能被锁定了。在这种情况下,我想警告用户,他需要关闭锁定它们的应用程序,然后才能使用"重试/取消"对话框继续程序,如果用户单击"取消",我希望目录保持不变。

所以,有人能告诉我一种方法,在不修改其内容的情况下,检查是否可以删除整个目录树(任何子目录中都没有锁定的文件)——类似于试运行。

也许你可以尝试重命名父目录,至少在Windows中,你会收到一个错误,说如果子文件夹中的文件被锁定,这是不可能的。如果重命名成功,则删除它应该是安全的,并在删除之前防止其他人访问该树。

您可以对目录树中的每个文件调用_access函数。但仍然有人可以在检查文件后锁定它。

使用Restart Manager会告诉您是否有任何文件正在使用,并提供关闭它们的功能。不过,在你检查后,没有什么能防止某些东西锁定它们的种族状况。