qt文件目录迭代器基本使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt文件目录迭代器基本使用相关的知识,希望对你有一定的参考价值。
//#include <fcntl.h>
//#include <sys/types.h>
//#include <unistd.h>
//#include <stdio.h>
checkFileNum::checkFileNumPro(){
// *****************************************
// 创建文件的默认位置(当前目录)是在build-SC-Desktop_Qt_5_5_1_MinGW_32bit-Debug
// int fd = open("../ScEnv/file.txt", O_RDONLY|O_CREAT);
// *******************************************
// 以下验证打印方式无误
// QString s = "abcdefg";
// qDebug("%s", qPrintable(s));
// *********************************************
QDirIterator dirIterator(USB_SOURCE_DIR);
int numFiles = QDir(USB_SOURCE_DIR).count();
QString fileNames;
while(dirIterator.hasNext()){
fileNames = dirIterator.next();
// qDebug("%s", qPrintable(fileNames));
fileNames = dirIterator.fileName();
// qDebug("%s", qPrintable(fileNames));
qDebug() << numFiles;
qDebug() << fileNames;
}
}
一、 在使用QDirIterator对文件目录操作的时候,对于读取目录中的文件名时:
hasNext()函数是判断目录中是否为空;
next()是读取下一个文件路径,包括前缀;
fileName()是读取当前文件名称,该函数使用时必须与next()配套使用;
下面短程序,在无next()函数时,迭代器一直停留在目录的最开始端,filename()函数读取的目录名称一直为空,
只用用了next()函数才能使迭代器移到下一条目录上,才能正常操作;
以下为next()和fileName()读取的文件名:
../ScEnv/db/.
.
../ScEnv/db/..
..
../ScEnv/db/197001_origin.db
197001_origin.db
../ScEnv/db/197001_result.db
197001_result.db
../ScEnv/db/201502015_result.db
201502015_result.db
../ScEnv/db/201507_origin.db
201507_origin.db
../ScEnv/db/201507_result.db
201507_result.db
../ScEnv/db/dataCollect_result.db
dataCollect_result.db
二:在运用qDebug()函数进行打印信息的时候在打印字符串是有两种方式:
1、qDebug("%s", qPrintable(fileNames));
2、qDebug() << fileNames;
在单一打印时推崇第二种,不用使用格式助记符;
在多重打印时推崇第一种,可以简化书写;
以上是关于qt文件目录迭代器基本使用的主要内容,如果未能解决你的问题,请参考以下文章