用于记录文件夹遍历实现
引言
之所以写本篇文章是第三次使用到文件夹遍历,获取特定后缀的文件这样的需求,所以记录下来作为自己的常用函数包储备。
实现可能首先是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