qt怎么删除目录及其子文件

avatar
作者
猴君
阅读量: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函数删除子目录。最后删除目录本身。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!