用于记录文件夹遍历实现

引言

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

实现可能首先是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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐