RemoveDirectory()如果​​目录不为空?

时间:2017-04-03 14:02:48

标签: c++ windows winapi directory

在页面(RemoveDirectory() - function)上,他们说:“要删除的目录的路径。此路径必须指定一个空目录,并且调用进程必须具有删除对目录的访问权限。

我的问题是:如何使用此功能删除非空目录?那可能吗?任何帮助都是合情合理的!

1 个答案:

答案 0 :(得分:3)

简短的回答是你没有。

如果需要删除非空目录,则执行目录结构的深度优先遍历。在遍历单个目录时,将擦除它包含的所有文件。如果它包含任何子目录,您将遍历它们,删除它们的内容,然后删除(现在为空)目录。泡沫,冲洗,重复。

或者,使用SHFileOperation或(如果您感觉真正受虐待)IFileOperation,为您处理繁重的工作(但要注意后者是COM接口,所以让它来处理繁重的工作将至少是你自己完成工作的两倍。