qt读取当前文件夹
- 格式:docx
- 大小:14.68 KB
- 文档页数:1
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20 #include
#include
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QDir dir;
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir.setSorting(QDir::Size | QDir::Reversed);
QFileInfoList list = dir.entryInfoList();
std::cout << " Bytes Filename" << std::endl;
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
.arg(fileInfo.fileName()));
std::cout << std::endl;
}
return 0;
}
上面的代码只列出了当前目录下的文件,并没有递归地进入子目录遍历。
递归遍历子目录如下:
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15 QFileInfoList GetFileList(QString path)
{
QDir dir(path);
QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDoSymLinks);
QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDot);
for(int i = 0; i != folder_list.size(); i++)
{
QString name = folder_list.at(i).absoluteFilePath();
QFileInfoList child_file_list = GetFileList(name);
file_list.append(child_file_list);
}
return file_list;
}