Здравствуйте, гость ( Вход | Регистрация )
maric2000 | Дата 27.10.2009, 9:35 |
Спасибо всем! Реализовал оба варианта: и через API функции, и через заранее созданный список. Оба работают приемлемо быстро. Скачал Qt4.6 Beta1, установлю, попробую, отпишусь, исправили ли. Программу интересуют файлы в директории следующего формата: "??????.??"; Исходный вариант ф-ии:
вариант с API:
Вариант с заранее созданным списком: В конструкторе класса или в ф-ии update:
|
|
panter_dsd | Дата 26.10.2009, 17:44 |
Тогда не entryList, а entryInfoList. | |
DIMEDROLL | Дата 26.10.2009, 14:13 |
многократно в цикле вызывать QDir.entryList(const QStringList & nameFilters) с разными масками файлов. Я бы взял все файлы (без фильтра), а потом этот список бы фильтровал.Я бы тоже так делал. maric2000 entryList медленная, а ты ее еще и в цыкле вызываешь и она стает мегамедленной делай так: вызываешь QDir.entryList() без фильтров 1 раз, получаешь все файлы в QFileInfoList, а потом в цикле по QFileInfoList проверяешь подходит ли он к твоему фильтру(isFile, isHidden), если да то увеличиваешь счетчик |
|
panter_dsd | Дата 26.10.2009, 12:36 |
Попробуй версию 4.6, там должны быть улучшения по этому поводу. | |
niXman | Дата 26.10.2009, 11:39 |
Где-то в блогах Qt, или еще где-то, не помню, писалось про тормозливость QDir.entryList(const QStringList & nameFilters). Насколько я понял(прочтя ту статью), что если нужна интенсивная работа с этим методом, то лучше написать свой метот, используя API системы. Позже, тоже не помню где, вычитал, что исправили этот недочет. | |
Litkevich Yuriy | Дата 26.10.2009, 11:06 |
многократно в цикле вызывать QDir.entryList(const QStringList & nameFilters) с разными масками файлов. Я бы взял все файлы (без фильтра), а потом этот список бы фильтровал. |
|
maric2000 | Дата 26.10.2009, 11:00 |
В программе требуется для заполнения таблицы многократно в цикле вызывать QDir.entryList(const QStringList & nameFilters) с разными масками файлов. Это требуется для определения числа файлов по определенной маске. Выполнение всего цикла занимает неоправданно много времени (если закомментировать строку с QDir.entryList() , то цикл проходит мгновенно). Подскажите, как ускорить entryList или если для определения числа файлов по определенной маске пользоваться другим классом ( функцией), то каким? PS. раньше в в аналогичной программе, под С++Builder, пользовался FindFirst, FindNext все работало очень быстро. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 18.4.2024, 6:29 |