QT递归遍历文件夹下所有文件,获取单个文件行数

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】,qt,数据库,开发语言)