简介
FileInfoList用于获得指定目录下所有文件/文件夹的基本信息,QFileInfoList其实是typedef创建的:
typedef QFileInfoList QList<QFileInfo>;
用法
QFileInfoList QDir::entryInfoList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const
用于QDir类返回QFileInfoList类型对象。两个枚举参数filters 和sort 分别用来描述QDir目录下的文件筛选方式和文件排序方式。例如entryInfoList(QDir::Filter::Files, QDir::SortFlag::Name)表示只列出文件(不包含文件夹)、这些文件按名称排序。
QDir dir("E:\\CloudMusic\\"); //定义一个QDir变量,设置路径为当前目录的music文件夹(这里可用绝对路径也可以用相对路径)
QFileInfoList fileinfolist; //文件信息表
fileinfolist = dir.entryInfoList(); //列出所有符合的文件
QT中晒选给定目录下的某一类文件
#include <QApplication>
#include <QWidget>
#include <QDir>
#include <QDirModel>
#include <QStringList>
#include <QString>
#include <QDebug>
#include <QModelIndex>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int i = 0;
QDir dir("E:\\CloudMusic\\");//定义一个QDir变量,设置路径为当前目录的music文件夹(这里可用绝对路径也可以用相对路径)
QStringList stringlist_song;//用来保存歌曲名的表
QFileInfoList fileinfolist;//文件信息表
QFileInfo fileinfo;//文件信息变量
QString string_song;//用于保存文件信息字符串
stringlist_song << "*.mp3";//把所有mp3文件加入到stringlist_song表中
dir.setNameFilters(stringlist_song);//过滤文件
fileinfolist = dir.entryInfoList();//列出所有符合的文件
while( i<fileinfolist.length() ){
fileinfo = fileinfolist.at(i);//把fileinfolist表中某个位置的歌曲名赋给fileinfo变量
qDebug()<<fileinfo.fileName();
string_song = fileinfo.filePath();//把fileinfo变量中的文件名转换成QString并赋给string_song
qDebug()<<string_song;
//stringlist_song << string_song;//把歌曲名赋给stringlist_song表
i++;
}
QWidget w;
w.show();
return a.exec();
}