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

时间: 2024-09-29 09:48:50

QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)的相关文章

Android读取asserts和raw文件夹下的文件

经常需要用到读取"/res/raw"和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的文件操作工具类: /** * raw文件夹下的文件处理工具类 * * */ public class RawFileUtils { private RawFileUtils( ){ } /** * 读取raw文件夹下的文件 * @param resourceId raw文件夹下的文件资源ID * @return 文件内容 * * */ publ

VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E"Const TR_COL_NAME = "C"Const TR_COL_COUNT = "D"Const TR_COL_TREE_START = "F"Const TR_ROW_HEIGHT = 23Const TR_COL_LINE_WIDT

Python读取指定文件夹下的文件

1 # -*- coding: utf-8 -*- 2 import csv 3 import os 4 import pandas as pd 5 #提取文件夹下的地址+文件名,源文件设定排序规则 6 def file_name(file_dir): 7 L = [] 8 for root, dirs, files in os.walk(file_dir): 9 for file in files: 10 if os.path.splitext(file)[1] == '.csv': 11 L

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下

背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移动到多个目录下,这个目录是图片的上传日期(就是文件属性中的修改日期filemtime)组成的.比如2012-12-20的修改日期,那么现在就该放在/data/images/2012/12/20的目录下. php有很容易的操作文件的函数,可以方便完成.当然也可以利用shell脚本完成. 用shell的

给一个文件夹,返回该文件夹下所有文件的数量

<?php 给一个文件夹,读取文件夹里面文件的数量 echo ShuLiang("./gai.php"); 给一个文件夹,返回该文件夹下所有文件的数量 function ShuLiang($filename) { $sum=0; 定一个初始值 变量 $dir = opendir($filename); while($f = readdir($dir)) { if($f=="." || $f=="..") 排除 两个文件 { } else {

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

删除沙盒中文件夹下所有文件

有时候需要在iOS系统里面,删除指定文件夹的内容,文件夹里面可能是文件,也可能包含有文件夹. 删除指定类型的文件.方法如下: NSString *extension = @"m4r"; NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,

root用户在media文件夹下修改文件权限无效

http://blog.csdn.net/pipisorry/article/details/39649699 问题: 我想执行media文件夹下自己写的某个程序,但无法执行 media这个文件夹的所有者是root [email protected]:/#ls -ld /media drwxr-xr-x 5 root root 1024 Sep 29 00:08 /media 于是我以root的身份在终端以输入指令chmod a+x 1,回车后没反应,查询该文件夹的属性,也没有改变  为什么?

PHP遍历文件夹下的文件和获取到input name的值

<?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admin'; //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); $arr = array();while($file=readdir($handle)){  if(is_file($file)){ if ($file != "."&