QT C++ 删除多级文件夹包括文件
时间: 2023-12-02 18:05:01 浏览: 142
在 Qt C++ 中删除多级文件夹包括文件可以使用QDir类和QFile类。首先,我们可以使用QDir::removeRecursively()函数来删除整个目录,包括所有子目录和文件。然后,我们可以使用QFile::remove()函数删除单个文件。
以下是一个示例代码,可以删除多级文件夹包括文件:
```cpp
#include <QCoreApplication>
#include <QDir>
#include <QFile>
#include <QDebug>
void deleteFolder(const QString& folderPath)
{
QDir dir(folderPath);
// 判断文件夹是否存在
if (!dir.exists()) {
return;
}
// 获取文件夹内所有子目录和文件
QFileInfoList fileList = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
// 遍历所有子目录和文件
foreach (QFileInfo fileInfo, fileList) {
if (fileInfo.isDir()) { // 如果是目录,则递归删除
deleteFolder(fileInfo.filePath());
} else { // 如果是文件,则直接删除
QFile::remove(fileInfo.filePath());
}
}
// 删除目录
if (dir.rmdir(folderPath)) {
qDebug() << "Folder deleted successfully!";
} else {
qDebug() << "Failed to delete folder!";
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString folderPath = "C:/TestFolder"; // 要删除的文件夹路径
deleteFolder(folderPath);
return a.exec();
}
```
在这个示例中,我们首先使用QDir类获取文件夹内所有子目录和文件,然后遍历所有子目录和文件,如果是目录则递归删除,如果是文件则直接删除。最后,我们使用QDir::rmdir()函数删除目录本身。
请注意,删除操作是不可逆的,因此在使用此函数之前,请确定您已经备份了需要保留的文件。
阅读全文