先看代码:
QDir *dir=new QDir("D:\");
QStringList filter;
//filter<<"*.dat";
//dir->setNameFilters(filter); //过滤文件类型
QList<QFileInfo> *fileInfo=new QList<QFileInfo>(dir->entryInfoList(filter));
int count=fileInfo->count(); //文件个数
cout<<count<<endl;
cout<<fileInfo->at(2).filePath().toStdString()<<endl; //文件路径
cout<<fileInfo->at(2).fileName().toStdString()<<endl; //文件名称
说明:1、注释掉的两行是用来文件过滤用的,如果要指定文件后缀名在 filter<<"*.dat" 写就好了
2、文件数目:fileInfo->count();
这里计算出来的个数比文件夹下实际的个数要多2个,经过输出发现在最前面有.和..,即使文件中没有,这里也会默认有的。
3、文件路径(包含文件名):fileInfo->at(i).filePath();
4、文件名称:fileInfo->at(i).fileName();
有个问题是我在调试的时候发现QDir *dir=new QDir("D:\"); 里的路径可以是相对路径,也可是绝对路径,但是绝对路径时不能是C盘的文件夹,这里不知道为啥?没细究,有知道的可以留言。。。