阅读量:0
在Qt中,可以使用QDir类的removeRecursively方法来删除目录及其子文件。示例代码如下:
#include <QDir> #include <QDebug> void removeDirectory(const QString& path) { QDir dir(path); if (dir.exists()) { // 获取目录下所有文件和子目录 QStringList fileList = dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot); // 遍历子文件和子目录 foreach(const QString& fileName, fileList) { QString filePath = dir.filePath(fileName); QFileInfo fileInfo(filePath); // 如果是文件则直接删除 if (fileInfo.isFile()) { QFile::remove(filePath); } // 如果是目录则递归调用removeDirectory删除子目录 else if (fileInfo.isDir()) { removeDirectory(filePath); } } // 删除目录 dir.rmdir(path); } } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString path = "your_directory_path"; removeDirectory(path); return a.exec(); }
在上述示例代码中,removeDirectory函数使用递归的方法删除目录及其子文件。首先判断目录是否存在,如果存在则获取目录下的所有文件和子目录。然后遍历子文件和子目录,如果是文件则直接删除,如果是目录则递归调用removeDirectory函数删除子目录。最后删除目录本身。