首页 > 解决方案 > 当设置了 QDir::NoSort 标志时,QDir::entryList() 对文件进行排序

问题描述

我有一个存储一些图像的本地目录。图片被命名为“1.JPG”、“2.JPG”、“3.JPG”等。当我通过资源管理器查看它们时,它们在名称中按升序排序,即“1.JPG”排在第一位, “2.jpg”是第二个,“3.JPG”是第三个,等等。

现在我想将该目录中的所有文件名上传到QStringList我的应用程序中。它是这样完成的:

QDir directory(imageDirectory);
imagesToMerge = directory.entryList(QStringList() << "*.jpg" << "*.JPG", QDir::Files);

imagesToMergea在哪里QStringList,我想包含所有文件名;

问题是,当我查看此列表时(qDebug()例如,使用

  1. “1.JPG”
  2. “10.JPG”
  3. “11.JPG”

    ...

    1. “9.JPG”

这不是我想要的行为。

我尝试在 中设置QDir::NoSort标志QDir::entryList(),但没有任何影响。

有没有办法让这个函数按照我想要的方式运行?如果没有,有没有其他方法?

提前致谢!

标签: c++qtsortingqdir

解决方案


推荐阅读