QT获取文件夹下文件名称
发布时间
阅读量:
阅读量
1、头文件声明
#include <QDir>
2、主程序
/********************************************************
输入:文件路径;保存全部文件名的容器
/********************************************************/
void findFile(const QString& path, std::vector<QString>& fileNames)
{
QDir dir(path);
if(!dir.exists())
{
return;
}
//获取filePath下所有文件夹和文件
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);//文件夹|文件|不包含./和../
//排序文件夹优先
dir.setSorting(QDir::DirsFirst);
//获取文件夹下所有文件(文件夹+文件)
QFileInfoList list = dir.entryInfoList();
/**********直接获取带文件后缀的文件;如果使用,则只搜索当前文件夹下的文件*************
QStringList filer;
filer << "*.jpg" <<"*.bmp";//设定需要的文件类型(*为所有类型)
QFileInfoList list = dir.entryInfoList(filer);
//QList<QFileInfo> *list= new QList<QFileInfo>(dir.entryInfoList(filter));
/*******************************************************************************/
/**********************只获取文件,只搜索当前文件夹下的文件************************
QStringList list= dir.entryList(filer, QDir::Files | QDir::NoDotAndDotDot);
/*******************************************************************************/
if(list.size() == 0)
{
return;
}
//遍历
for(int i = 0; i < list.size(); i++)
{
QFileInfo fileInfo = list.at(i);
if(fileInfo.isDir())//判断是否为文件夹
{
findFile(fileInfo.filePath(), fileNames);//递归开始
}
else
{
if(fileInfo.suffix() == "bmp")//设定后缀
{
fileNames.emplace_back(list.at(i).fileName());//保存全部文件名
//fileNames.emplace_back(list.at(i).filePath());//保存全部文件路径+文件名
}
}
}
}
将文件夹内的所有文档存储到一个vector容器中;
通过遍历该容器能够获取所需的结果;
其中文件名采用QString类型;
若需将其转换为std::string类型,则可以通过调用toStdString()函数实现转换。
toStdString
3、结果

全部评论 (0)
还没有任何评论哟~
