梦想的彼岸花开 2024-04-09 15:40 采纳率: 77.8%
浏览 46
已结题

QDir entryInfoList 遍历失败

我有一段代码,使用 QT 的 QDir entryInfoList 获取特定类型文件信息,但是遍历的结果是 0

auto byteArrayListSupport = QImageReader::supportedImageFormats();
for (auto &byteArraySupport : byteArrayListSupport)
{
    auto fileExtString = QString::fromUtf8(byteArraySupport);
    m_strlistFilterList << "*." + fileExtString;
}

QDir::SortFlags sortFlags = QDir::NoSort;
QString strFilePath = “D:\\Works\\Self\\resources\\mainWidget\\1.png”
QFileInfoList folderFileInfoList = QDir(strFilePath).entryInfoList(m_strlistFilterList, QDir::Files, sortFlags);

这个调用的 folderFileInfoList 结果是 size 为 0,图片什么的都是有的,路径也是对的,程序里的路径是调用 API 打开文件选择窗口获取的,QT 版本是 5.12.10,我在 stackoverflow 上没有搜到相关的问题,百度搜索的时候发现也有人有这问题,但很少:https://bbs.csdn.net/topics/394485717
这个问题该怎么解决?

  • 写回答

4条回答 默认 最新

  • mideum 2024-04-09 16:53
    关注

    额,按你主楼代码的话因为你传给QDir的是文件路径不是目录路径啊,对QDir来说等于这是个不存在的目录怎么会有结果呢
    你可以把QDir存到变量然后打印一下

    QDir dir(strFilePath);
    dir.setNameFilters(m_strlistFilterList);
    qDebug() << "exists:" << dir.exists() << dir;
    QFileInfoList folderFileInfoList = dir.entryInfoList(QDir::Files, sortFlags);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月9日
  • 创建了问题 4月9日