我正在构建具有特定目录的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类型的迭代。我该如何控制? 在不同的操作系统(跨平台)中如何发挥不同的作用?
答案 0 :(得分:0)
它仍然是跨平台的,并且完全按照claims to do的方式运行。迭代目录中的条目。
您期望排序的结果,这不是指定行为的一部分。之所以存在这种差异,可能是因为文件系统不同(NTFS与EXT3 / 4)不同,并且它们以不同的方式组织底层的inode。
如果您想要标准化的行为,则可以在注释中关注Mohammad的链接,也可以将其放入QStringList and calling sort中以对其进行排序。