qdir 自动创建多级目录_[转载]Qt实现遍历文件夹和文件目录(递归)

本文详细介绍了如何使用Qt的QDir类遍历文件夹和文件,包括创建目录、读取文件信息、过滤和排序。QDir提供了访问目录结构的平台无关方式,支持设置过滤器、排序方式,以及进行文件操作如创建、重命名和删除。此外,还讨论了如何以二进制格式读写文件,使用QDataStream进行数据流操作,并处理Qt不同版本之间的兼容性问题。
摘要由CSDN通过智能技术生成

bool FindFile(const QString & path)

{

QDir dir(path);

if (!dir.exists())

return false;

dir.setFilter(QDir::Dirs|QDir::Files);

dir.setSorting(QDir::DirsFirst);

QFileInfoList list = dir.entryInfoList();

int i=0;

do{

QFileInfo fileInfo = list.at(i);

if(fileInfo.fileName()=="."|fileInfo.fileName()=="..")

{

i++;

continue;

}

bool bisDir=fileInfo.isDir();

if(bisDir)

{

nFiles++;

std::cout << qPrintable(QString("%1

%2 %3").arg(fileInfo.size(), 10)

.arg(fileInfo.fileName(),10).arg(fileInfo.path()))<

FindFile(fileInfo.filePath());

}

else{

nFiles++;

std::cout << qPrintable(QString("%1

%2 %3").arg(fileInfo.size(), 10)

.arg(fileInfo.fileName(),10).arg(fileInfo.path()))<

}

i++;

}while(i

return true;

}

详细描述

QDir类提供了访问目录结构和它们的内容的与平台无关的方式。

QDir用来操作路径名称、关于路径和文件的访问信息和操作底层文件系统。

QDir使用相对或绝对文件路径来指向一个文件。绝对路径是从目录分隔符“/”或者带有一个驱动器标识(除了在Unix下)。如果你总是使用“/”作为目录分隔符,Qt将会把你的路径转化为符合底层的操作系统的。相对文件名是由一个目录名称或者文件名开始并且指定一个相对于当前路径的路径。

“当前”路径是指应用程序的工作目录。QDir自己的路径可以通过setPath()设置并且通过path()获得。

一个绝对路径的实例是字符串“/tmp/quartz”,相对路径看起来像是“src/fatlib”。你可以使用函数isRelative()来检查一个QDir使用的是相对还是绝对文件路径。调用convertToAbs()可以把一个相对的QDir转化为绝对的。使用cleanDirPath()可以得到一个简化的路径。为了获得没有符号连接或者多余的“..”元素的路径,请使用canonicalPath()。路径可以通过setPath()设置,或者使用cd()和cdUp()来改变。

QDir提供了几个静态函数,例如,setCurrent()设置应用程序的工作目录并且currentDirPath()来获得应用程序的工作目录。访问一些普通的路径是由以下一些静态函数提供的,current()、home()和root()返回QDir对象或者currentDirPath()、homeDirPath()和rootDirPath()返回字符串路径。

count()返回目录中的条目数量。通过entryList()可以获得目录中的所有文件和目录的名称的字符串列表。如果你希望得到QFileInfo指针的列表请使用entryInfoList()。这些函数都可以使用名称过滤器、属性过滤器(例如只读、只要文件不要目录等等)和排列顺序。过滤器和排序可以调用setNameFilter()、setFilter()和setSorting()来设置。它们可以通过entryList()和entryInfoList()的参数来指定。

mkdir()可以创建一

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值