遍历一个路径文件夹和文件的代码,好使
文件遍历代码:
.h:
public:
float size;
cpp:
#include <QFileInfo>
#include <QDir>
void Wangpan::findFile(QString path)//若是盘里什么都没有的话这个程序就崩溃了//
{
QDir dir(path);
if (!dir.exists())
return ;
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) //如果是文件夹,就递归
{
qDebug()<<"这是一个文件夹啊:"<<fileInfo.fileName();//显示文件夹的名字
findFile(fileInfo.filePath());
}
else
{
QFile *file=new QFile(fileInfo.fileName());
if(file->exists("E://LTJ//"+fileInfo.fileName()))
{
}
else
{
file->open(QIODevice::ReadWrite);
size = size + fileInfo.size();//文件的大小
qDebug("ffff");
qDebug()<<fileInfo.fileName();//如果文件名有韩文的就没办法显示了
qDebug()<<fileInfo.canonicalPath();
qDebug()<<size;
}
}
i++;
}while(i < list.size());//这里是list.size(),也就是当前文件夹下的文件夹数和文件数的和再+2
}