Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QDirIterator在文件夹中排序_Qt_Cross Platform - Fatal编程技术网

Qt QDirIterator在文件夹中排序

Qt QDirIterator在文件夹中排序,qt,cross-platform,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类型的迭代。我怎样才能控制它?

我正在构造一个具有特定目录的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类型的迭代。我怎样才能控制它?
为什么它在不同的操作系统(跨平台)中的工作方式会有所不同呢?

它仍然是跨平台的,而且做的正是它所做的。它是对目录中的条目进行迭代

您需要的是排序结果,这不是指定行为的一部分。这种差异可能是因为文件系统不同(NTFS与EXT3/4),并且以不同的方式组织底层索引节点

如果你想要标准化的行为,你可以按照Mohammad在评论中的链接,或者自己将它们放入QStringList中进行排序。

可能重复的