c++qdir删除某个文件夹下面所有文件
时间: 2023-09-07 13:14:21 浏览: 108
Qt删除一个目录下所有文件和文件夹
4星 · 用户满意度95%
你可以使用QDir类的removeRecursively函数来删除某个文件夹及其下面的所有文件和子文件夹。示例代码如下:
```c++
#include <QDir>
// 删除文件夹及其下面的所有文件和子文件夹
void deleteDirectory(const QString& path)
{
QDir dir(path);
if (!dir.exists()) return;
QFileInfoList fileList = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
foreach (QFileInfo fileInfo, fileList) {
fileInfo.dir().remove(fileInfo.fileName());
}
QFileInfoList folderList = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach (QFileInfo folderInfo, folderList) {
deleteDirectory(folderInfo.absoluteFilePath());
}
dir.rmdir(".");
}
```
在上述代码中,deleteDirectory函数使用递归的方式来删除指定文件夹下面的所有文件和子文件夹。首先使用entryInfoList函数获取指定文件夹下面的所有文件和子文件夹,然后分别对文件和子文件夹进行处理。如果是文件,则直接使用remove函数删除,如果是子文件夹,则递归调用deleteDirectory函数来删除。最后再使用rmdir函数删除当前文件夹。
阅读全文