Qt学习-QFileInfoList遍历文件夹以及过滤文件

//递归遍历文件夹
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());
    }


  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值