Qt清空文件夹下的内容
你可以使用 QDir
类来清空文件夹下的所有内容。以下是一个示例,展示了如何删除指定文件夹中的所有文件和子文件夹:
#include <QCoreApplication>
#include <QDir>
#include <QFileInfoList>
#include <QDebug>bool clearDirectory(const QString &dirPath) {QDir dir(dirPath);if (!dir.exists()) {qDebug() << "Directory does not exist:" << dirPath;return false;}// 获取文件夹内所有文件和子文件夹QFileInfoList fileList = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);// 遍历并删除文件和子文件夹foreach (const QFileInfo &fileInfo, fileList) {if (fileInfo.isDir()) {// 如果是文件夹,递归清空clearDirectory(fileInfo.absoluteFilePath());dir.rmdir(fileInfo.absoluteFilePath());} else {// 如果是文件,直接删除dir.remove(fileInfo.absoluteFilePath());}}return true;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString folderPath = "path/to/your/folder"; // 替换为目标文件夹路径if (clearDirectory(folderPath)) {qDebug() << "Directory cleared successfully!";} else {qDebug() << "Failed to clear the directory.";}return a.exec();
}
代码解释:
QDir
:用于操作目录。entryInfoList()
:获取文件夹中的所有条目(包括文件和子目录)。- 递归删除:如果目录中包含子文件夹,首先递归调用
clearDirectory
删除子文件夹的内容,然后删除该子文件夹。如果是文件,直接删除。 remove()
和rmdir()
:分别用于删除文件和空文件夹。
这段代码将清空指定目录及其所有子目录中的内容。