首页 > 代码库 > QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)
QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)
之前,用标准C++写过读取文件夹。
现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的。
主要用到QDir,详细文档可见这里
A program that lists all the files in the current directory (excluding symbolic links), sorted by size, smallest first:
?
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 | QDir::NoSymLinks); QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); 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; } |
至于,网页处理后,需要根据输入的目录,生成对应的输出目录,可以使用QDir中的mkpath
http://blog.chinaunix.net/uid-25749806-id-315904.html
QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。