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;

}