Форум: "Прочее";
Текущий архив: 2017.07.16;
Скачать: [xml.tar.bz2];
ВнизПолучение данных о папке без FindFirst..FindNext Найти похожие ветки
← →
Empleado © (2016-05-20 18:27) [0]Добрый вечер,
Есть ли API (или другие средства), позволяющие получить следующую информацию о папке на локальном, а также на удаленном компьютере:
- количество файлов в папке
- общий размер всех файлов в папке
Главное - без использования FindFirst..FindNext.
Спасибо.
← →
Dimka Maslov © (2016-05-20 20:33) [1]Даже сама винда при отображении папок с большим числов файлов создаёт список медленно и постепенно. Следовательно, всё равно используются FindFirstFile и FindNextFile
← →
K-1000 © (2016-05-21 06:19) [2]А почему эти функции нельзя использовать?
← →
DVM © (2016-05-21 12:37) [3]Ну если для локального HDD еще можно что-либо придумать (но не факт, что будет быстрее), то для сетевых дисков вряд ли.
← →
Empleado © (2016-05-21 23:27) [4]
> K-1000 © (21.05.16 06:19) [2]
Да вот у меня как раз такой случай, как Дмитрий описал:
в папках может лежать огромное количество файлов небольшого и большого размеров, и подсчет размера папки и количества файлов происходит не совсем быстро.
Да и подумалось, может за последний десяток лет появилось более оптимальное/радикальное средство сбора информации о папках?...
← →
Германн © (2016-05-22 01:18) [5]Ну тут есть естественный вопрос к ТС. А что есть "папка" в твоём понимании?
← →
Pavia © (2016-05-22 09:08) [6]Профессионалы с Sources.ru вручную набирают NFTS. Говорят получается быстрее.
> Даже сама винда при отображении папок с большим числов файлов
> создаёт список медленно и постепенно.
Она не по этому тормозит. Там самое медленное это получение иконки к файлу, папке.
← →
DVM © (2016-05-22 10:14) [7]
> Pavia © (22.05.16 09:08) [6]
> Она не по этому тормозит. Там самое медленное это получение
> иконки к файлу, папке.
Иконки получаются в отдельном потоке, это не мешает заходу и выходу в/из папки. Кроме того они кэшируются в системном имиджлисте и для известных типов заново не считываюся с диска. Кроме того, ListView в проводнике работает в виртуальном режиме и не видимые в данный момент файлы вообще не нуждаются в отрисовке иконок (хотя в фоне они извлекаются). Это не главная причина "тормозов".
Зайди в Linux в папку c миллионами файлов через консольный файловый менеджер, типа MC - тоже придется подождать.
← →
Dimka Maslov © (2016-05-22 11:09) [8]
> Она не по этому тормозит. Там самое медленное это получение
> иконки к файлу, папке.
При определении размеров папки иконки не нужны. Но система тормозит.
← →
Pavia © (2016-05-22 12:19) [9]
> При определении размеров папки иконки не нужны. Но система
> тормозит.
Не тормозит, а работает.
> Зайди в Linux в папку c миллионами файлов через консольный
> файловый менеджер, типа MC - тоже придется подождать.
Возьмите DOS там ждать не надо.
По поводу миллиона. Як дети теория алгоритмов для кого придумана была? Конечно если взять параметр N большим, то и задача будет решаться долго. Но это не значит что она тормозит! Так как к любой задаче можно найти N который читается за секунды, минуты. Поэтому алгоритмы и сравнивают по O() или по удельному значению.
← →
Kerk © (2016-05-22 12:31) [10]
> Конечно если взять параметр N большим, то и задача будет
> решаться долго. Но это не значит что она тормозит!
А скорость выполнение единичной итерации конечно никак на скорость работы не влияет. Влияет только N.
← →
Dimka Maslov © (2016-05-22 17:38) [11]
> она тормозит!
Таки тормозит. Или вообще не работает, а показывает прогрессбар.
← →
DVM © (2016-05-22 17:40) [12]
> Pavia © (22.05.16 12:19) [9]
> Возьмите DOS там ждать не надо.
Везде надо. Волшебства не бывает. Во времена DOS миллионы файлов в папках не хранили.
← →
Rouse_ © (2016-05-23 10:56) [13]Варианта всего два:
1. использовать NtQueryDirectoryFile - ну небольшое ускорение будет - но не сильно заметное.
2. ручками парсить структуру диска, учитывая что там может быть как NTFS, так и FAT16/FAT32.
Это будет пошустрее, но опять-же не супер шустро.
← →
han_malign © (2016-05-24 11:55) [14]
> Варианта всего два:
- начиная с Vista есть честная обертка к NtQueryDirectoryFile - GetFileInformationByHandleEx...
← →
Empleado © (2016-05-25 10:14) [15]Понятно.
Спасибо всем.
← →
Dimka Maslov © (2016-05-25 17:59) [16]
> начиная с Vista есть честная обертка к NtQueryDirectoryFile
> - GetFileInformationByHandleEx...
Только её до сих пор не потрудились прописать в Delphi... По меньшей мере, в XE9 её ещё не было.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.07.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c