Russian Qt Forum

Qt => Общие вопросы => Тема начата: Примерный ученик от Октябрь 23, 2015, 12:53



Название: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Примерный ученик от Октябрь 23, 2015, 12:53
Формирует список файлов указанного каталога. Если каталог очень большой, то это занимает много времени. Есть ли возможность как то ограничить длину списка, что бы список состоял, например, из первых 100 файлов, удовлетворяющих фильтру?


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Bepec от Октябрь 23, 2015, 13:05
Попробуйте использовать entryInfoList. Он менее затратный по ресурсам и уже на основании его формировать список из ста первых.

Ну или переходите на платформозависимые методы.


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Примерный ученик от Октябрь 23, 2015, 13:51
А почему он менее затратный?
В entryList возвращается список строк с именами файлов, а в entryInfoList список структур с характеристиками файлов.
Из чего следует, что это менее затратно?


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Пантер от Октябрь 23, 2015, 13:53
А QDirIterator в тройке не было?


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Примерный ученик от Октябрь 23, 2015, 13:54
нет


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Пантер от Октябрь 23, 2015, 13:56
Тогда пиши сам реализацию. Я так понимаю, у тебя МСВС? Значит только Линух. Значит одна реализация.


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Пантер от Октябрь 23, 2015, 13:56
Или используй стороннюю либу (Буст?)


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Примерный ученик от Октябрь 23, 2015, 13:57
ок, бум думать


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Bepec от Октябрь 23, 2015, 14:17
Ну, не знаю что за магия внутри, но список в порядка 20к файлов в QStringList формировался дольше, чем QFileInfoList. Ну да смотрите сами.


Название: Re: QDir::entryList QT3.3.8 ограничить число строк
Отправлено: Пантер от Октябрь 23, 2015, 14:27
Ну, не знаю что за магия внутри, но список в порядка 20к файлов в QStringList формировался дольше, чем QFileInfoList. Ну да смотрите сами.
Вполне возможно, внутри сначала формируется QFileInfoList, из которого достаются имена.