Qt遍历指定路径文件夹、文件、所有磁盘

用于记录文件夹遍历实现

引言

之所以写本篇文章是第三次使用到文件夹遍历,获取特定后缀的文件这样的需求,所以记录下来作为自己的常用函数包储备。

实现可能首先是Qt中一些封装好函数的使用,如果时间允许的话使用c++标准库实现相同的思想。

实现

遍历指定路径的文件

QStringList MainWindow::allChildFile(QString path)
{
    QStringList resultDocName;
    if (path == "")
    {
        return resultDocName;
    }

    QDir sourceDir(path);
    QFileInfoList fileInfoList = sourceDir.entryInfoList();
    foreach (QFileInfo fileInfo, fileInfoList)
    {
        if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
            continue;
        if (fileInfo.isDir())
            continue;
        resultDocName.push_back(fileInfo.fileName());
    }
    return resultDocName;
}

遍历指定路径的文件夹

QStringList MainWindow::allChildDir(QString path)
{
    QStringList resultDirName;
#ifdef Q_OS_WIN
    if (path == "")
    {
        resultDirName = allDrivers();
        return resultDirName;
    }
#endif
    if (!QFile::exists(path))
    {
        return resultDirName;
    }
    QDir sourceDir(path);

    QFileInfoList fileInfoList = sourceDir.entryInfoList();

    foreach (QFileInfo fileInfo, fileInfoList)
    {
        if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
        {
            continue;
        }
        if (fileInfo.isDir())
        {
            resultDirName.push_back(fileInfo.fileName());
        }
    }
    return resultDirName;
}

遍历查找所有磁盘

QStringList MainWindow::allDrivers()
{
    QStringList resultDriversName;
    foreach (QFileInfo my_info, QDir::drives())
    {
        resultDriversName.push_back(my_info.absolutePath());
    }
    return resultDriversName;
}

运行

在这里插入图片描述

如果本文帮助到你了的话请帮忙点赞、评论、关注三连哦~

源码下载:FileReleated.zip

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值