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;
在单一打印时推崇第二种,不用使用格式助记符;
在多重打印时推崇第一种,可以简化书写;
 
 
 
 
 
 

转载于:https://www.cnblogs.com/Joker714/p/5260708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值