QT递归遍历文件夹下所有文件
文件操作经常会用到获取文件夹下所有文件,包括所有子文件夹里的文件,这时可以用递归方法来便利所有文件夹,代码如下:
void MainWindow::GetAllfilesFromDir(QString p_str_dirname , QFileInfoList &m_fileinfolist)
{
QDir t_dir(p_str_dirname);
if(!t_dir.exists())
{
QMessageBox::information(this , "警告" ,"选择文件夹为空,请重新选择");
return;
}
foreach(QFileInfo info , t_dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Dirs))
{
GetAllfilesFromDir(info.filePath() , m_fileinfolist);
}
foreach(QFileInfo info , t_dir.entryInfoList(QDir::Files))
{
m_fileinfolist.push_back(info);
}
foreach(QFileInfo info , m_fileinfolist)
{
qDebug()<<"---"<<info.absoluteFilePath()<<"---"<<info<<endl;
}
}
获取文件行数
int MainWindow::GetFileLine(QString p_str_filename)
{
QFile mfile(p_str_filename);
int m_count=0;
if(mfile.open(QIODevice::ReadOnly))
{
while(true)
{
char buffer[2048]={0};
int readsize = mfile.readLine(buffer , sizeof(buffer));
if(readsize!=-1)
{
m_count++;
}
else
{
break;
}
}
}
return m_count;
}
该代码示例展示了在QT中如何使用递归函数`GetAllfilesFromDir`遍历指定文件夹及其子文件夹中的所有文件,并将文件信息存储在列表中。同时,还提供了一个`GetFileLine`函数用于计算单个文件的行数。这两个函数对于处理文件系统操作非常有用。
8944

被折叠的 条评论
为什么被折叠?



