QDirIterator在文件夹中排序

时间:2018-07-02 15:53:57

标签: qt cross-platform

我正在构建具有特定目录的QDirIterator。里面的文件看起来像这样:

file_0
files_1
file_2
.
.
.
.

如果使用Windows,则迭代是正常的,但是如果使用Linux,则顺序是不同的:

file_0
file_1
file_10
file_100
.
.
.
file_2
file_20
.
.

这是代码:

while(it.hasNext()) {
    QString tmp = it.next();
}

我需要Windows类型的迭代。我该如何控制? 在不同的操作系统(跨平台)中如何发挥不同的作用?

1 个答案:

答案 0 :(得分:0)

它仍然是跨平台的,并且完全按照claims to do的方式运行。迭代目录中的条目。

您期望排序的结果,这不是指定行为的一部分。之所以存在这种差异,可能是因为文件系统不同(NTFS与EXT3 / 4)不同,并且它们以不同的方式组织底层的inode。

如果您想要标准化的行为,则可以在注释中关注Mohammad的链接,也可以将其放入QStringList and calling sort中以对其进行排序。