qq_21219229 2015-05-21 23:47 采纳率: 0%
浏览 1307

急求使用Qt遍历打开文件夹,并把所有子文件的路径显示在ListWidget中,求大神帮忙!

bool StyleBatch::findFilePath(QString path)
{

QDir dir(path);
if (!dir.exists())
    return 0;
dir.setFilter(QDir::Dirs|QDir::Files);
dir.setSorting(QDir::DirsFirst);
QFileInfoList list = dir.entryInfoList();
QStringList infolist = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
//QList<QFileInfo> *fileInfo=new QList<QFileInfo>(dir.entryInfoList(infolist));
int i = 0;
do{
        QFileInfo fileInfo = list.at(i);

        if(fileInfo.fileName()=="."|fileInfo.fileName()=="..")
        {
            i++;
            continue;
         }
         bool bisDir = fileInfo.isDir();
         if(bisDir)
         {
                 findFilePath(fileInfo.filePath());
          }
          else
          {
               //这里就是你想要对文件的操作了
               for(int m = 0; m <infolist.size(); m++)
               {
                     //这里是获取当前要处理的文件名
                     QString filename = infolist.at(m);
                     //QString filepath=fileInfo.absoluteFilePath();
                     qDebug()<<filepath;
                     ui->listWidgetFiles->addItems((QStringList)filename);//这里主要只是添加文件名到ListWidgetFiles中,然而我后面需要按选中的文件路径对他们进行批量处理的过程,求具体地返回文件路径的方法,QFileInfo类不会用啊

               }
                break;//这里一定要break退出while循环,因为infolist中的文件访问完之后,当前文件夹下已经没有任何文件了,这里是递归的返回
           }
           i++;
   }while(i < list.size());//这里是list.size(),也就是当前文件夹下的文件夹数和文件数的和再+2

}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:44
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!