Qt 递归方式遍历目录
2015-03-15 16:23
134 查看
基本思想:
1.指定一个目录
2.找到当前目录下的文件(不包括文件夹,QDir可以进行筛选),存入QFileInfoList,然后按顺序存入QTreewidgetItem,并添加至根节点
3.找到当前目录下的第一个文件夹,作为一个新的根节点
4.重复2,3过程,直到没有新的文件夹
至此递归过程完毕。
-----------------------------------------------------
对于QTreewidget的新收获在仔细学习完后继续。
1.指定一个目录
2.找到当前目录下的文件(不包括文件夹,QDir可以进行筛选),存入QFileInfoList,然后按顺序存入QTreewidgetItem,并添加至根节点
3.找到当前目录下的第一个文件夹,作为一个新的根节点
4.重复2,3过程,直到没有新的文件夹
至此递归过程完毕。
-----------------------------------------------------
QFileInfoList fileViwer::allfile(QTreeWidgetItem *root,QString path, QStringList filters) //参数为主函数中添加的item和路径名 { /*添加path路径文件*/ QDir dir(path); //遍历各级子目录 QDir dir_file(path); //遍历子目录中所有文件 dir_file.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); //获取当前所有文件 dir_file.setNameFilters(filters); dir_file.setSorting(QDir::Name); QFileInfoList list_file = dir_file.entryInfoList(); for (int i = 0; i < list_file.size(); ++i) { //将当前目录中所有文件添加到treewidget中 QFileInfo fileInfo = list_file.at(i); QString name2=fileInfo.fileName(); QString namesuffix = fileInfo.suffix(); QTreeWidgetItem* child = new QTreeWidgetItem(QStringList()<<name2); //child->setIcon(0, QIcon("./Resources/images/link.png")); child->setIcon(0, fileExtensionIcon(namesuffix)); child->setCheckState(1, Qt::Checked); root->addChild(child); } 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 namepath = folder_list.at(i).absoluteFilePath(); //获取路径 QFileInfo folderinfo= folder_list.at(i); QString name=folderinfo.fileName(); //获取目录名 QTreeWidgetItem* childroot = new QTreeWidgetItem(QStringList()<<name); childroot->setIcon(0, QIcon("./Resources/images/file.png")); childroot->setCheckState(1, Qt::Checked); root->addChild(childroot); //将当前目录添加成path的子项 QFileInfoList child_file_list = allfile(childroot,namepath, filters); //进行递归 file_list.append(child_file_list); file_list.append(name); } return file_list; }
对于QTreewidget的新收获在仔细学习完后继续。
相关文章推荐
- 非递归方式遍历目录及其子目录的文件
- Qt 实现遍历文件夹和文件目录(递归)
- qt轻便实现递归目录遍历
- 目录遍历( 递归方式和队列方式 )
- Qt实现遍历文件夹和文件目录(递归)
- php递归方式遍历目录
- Qt 实现遍历文件夹和文件目录(递归)
- Qt实现遍历文件夹和文件目录(递归)
- 用非递归方式遍历目录及其子目录的文件
- 采用非递归方式遍历目录及其子目录的文件
- QT递归遍历目录
- Qt实现遍历文件夹和文件目录(递归) .
- Qt实现遍历文件夹和文件目录(递归)
- Qt实现遍历文件夹和文件目录(递归)
- 用非递归方式遍历目录及其子目录的文件
- 采用非递归方式遍历目录及其子目录的文件
- php队列方式和递归方式遍历目录文件及子目录
- 递归方式遍历子目录下的子目录
- 递归遍历目录的迭代器方式
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历