QDirIterator сортировка в папке - PullRequest
0 голосов
/ 02 июля 2018

Я создаю 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 голосов
/ 03 июля 2018

Он по-прежнему кроссплатформенный, и делает именно то, что утверждает, что делает . Который перебирает записи в каталоге.

Вы ожидаете отсортированные результаты, которые не являются частью указанного поведения. Разница, вероятно, заключается в том, что файловые системы различаются (NTFS и EXT3 / 4) и по-разному организовывают базовые inode.

Если вы хотите стандартизированное поведение, вы можете перейти по ссылке Мохаммеда в комментарии или отсортировать их самостоятельно, бросив их в QStringList и вызвав sort .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...