//递归遍历文件夹
QFileInfoList ListWidget::GetFileList(QString path)
{
    QDir dir(path);

    //列出dir(path)目录文件下所有文件和目录信息,存储到file_list容器
    QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
    //列出dir(path)目录下所有子文件夹
    QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
    //进行子文件夹folder_list递归遍历,将内容存入file_list容器
    for(int i= 0; i != folder_list.size(); i++)
    {
        QString name = folder_list.at(i).absoluteFilePath();
        QFileInfoList child_file_list = GetFileList(name);
        file_list.append(child_file_list);
    }
    return file_list;
}

过滤文件,筛选出文件夹下jpg格式的文件

    QStringList fileList;
    QString filter;

    //遍历文件夹获取文件信息,存入到容器file_info_list
    QFileInfoList file_info_list = GetFileList("File");     //使用File相对路径
      //GetFileList("C:\\Users\\Administrator\\Desktop\\File")    //绝对路径表示

    //foreach遍历容器file_in_list,进行过滤筛选,将过滤结果输入到fileList容器
    //筛选PPT文件
    /*foreach(variable, container)是Qt定义的一个宏,
      它的作用是遍历QList容器类变量container,并依次把列表项存放在变量variable中。
    */
    foreach(QFileInfo fileinfo, file_info_list)
    {
        //_filter = _fileinfo.completeSuffix();
        filter = fileinfo.suffix();    //后缀名
        if( (filter != "jpg") && (filter != "jpeg") &&(filter != "png") )
        {
            continue;
        }
        fileList.append(fileinfo.absoluteFilePath());
    }


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐