Qt清空文件夹下的内容

Qt清空文件夹下的内容

你可以使用 QDir 类来清空文件夹下的所有内容。以下是一个示例,展示了如何删除指定文件夹中的所有文件和子文件夹:

cpp 复制代码
#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();
}

代码解释:

  1. QDir:用于操作目录。
  2. entryInfoList():获取文件夹中的所有条目(包括文件和子目录)。
  3. 递归删除 :如果目录中包含子文件夹,首先递归调用 clearDirectory 删除子文件夹的内容,然后删除该子文件夹。如果是文件,直接删除。
  4. remove() 和 rmdir():分别用于删除文件和空文件夹。

这段代码将清空指定目录及其所有子目录中的内容。

相关推荐
2501_944521593 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理4 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
wangchunyu1145 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
初阳7855 小时前
【基于Qt5仿音乐播放器(六)】——细节打磨与总结
qt·1024程序员节
程序 代码狂人6 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
meiying88387 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
@大迁世界8 小时前
告别 Go,拥抱 Rust
开发语言·golang·rust
SEO_juper8 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
学逆向的8 小时前
C 指针常量与常量指针
c语言·开发语言·网络安全
低调滴开发9 小时前
3 行代码写崩一个函数?切片才是 Rust 字符串处理的正确姿势
开发语言·后端·rust