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;}