检查目录树是否可以在不实际开始删除的情况下删除
Check if a directory-tree can be deleted without actually starting to delete it
在我的程序中,我需要能够删除带有旧输出的目录。但里面的一些文件可能被锁定了。在这种情况下,我想警告用户,他需要关闭锁定它们的应用程序,然后才能使用"重试/取消"对话框继续程序,如果用户单击"取消",我希望目录保持不变。
所以,有人能告诉我一种方法,在不修改其内容的情况下,检查是否可以删除整个目录树(任何子目录中都没有锁定的文件)——类似于试运行。
也许你可以尝试重命名父目录,至少在Windows中,你会收到一个错误,说如果子文件夹中的文件被锁定,这是不可能的。如果重命名成功,则删除它应该是安全的,并在删除之前防止其他人访问该树。
您可以对目录树中的每个文件调用_access函数。但仍然有人可以在检查文件后锁定它。
使用Restart Manager会告诉您是否有任何文件正在使用,并提供关闭它们的功能。不过,在你检查后,没有什么能防止某些东西锁定它们的种族状况。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 使用函数"remove"删除重复元素
- C++ 从具有开始位置和结束位置的列表中删除
- f流删除特定的开始到结束行
- C++循环链表删除,计数从下一个节点开始
- 取代表开始/结束的数字对,并删除重叠
- 如何有效地从C++集中删除开始和结束元素
- 在字符串开始时删除某些字符
- 检查目录树是否可以在不实际开始删除的情况下删除
- 从开始内存中删除链表错误
- 排序的数据结构,用于按顺序迭代、有序推送和删除(仅从顶部开始 N 个元素)