【发布时间】:2013-10-11 02:19:36
【问题描述】:
删除 Win32 API (RemoveDirectory) 中的目录需要先删除该文件夹下的所有文件,然后再删除该文件夹。因此,假设我在根目录有一个文件夹“foo”,其中包含文件,以及一些也可能有或可能没有文件的子文件夹,我如何递归删除所有文件,然后删除子文件夹?
【问题讨论】:
删除 Win32 API (RemoveDirectory) 中的目录需要先删除该文件夹下的所有文件,然后再删除该文件夹。因此,假设我在根目录有一个文件夹“foo”,其中包含文件,以及一些也可能有或可能没有文件的子文件夹,我如何递归删除所有文件,然后删除子文件夹?
【问题讨论】:
它通常需要一个递归函数,它读取要删除的目录的内容(通过FindFirstFile()/FindNextFile()) - 如果遇到文件,则将其删除,否则递归到文件夹然后删除递归返回时的文件夹。
或者您也可以使用IFileOperation,系统会为您完成所有工作。
【讨论】:
SHFileOperation(),它使用起来更简单,但不够灵活(现在或多或少已被弃用)。