![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ускорение поиска файлов
Dmitrij_K © (2005-12-29 13:34:00)У меня есть алгоритм, который ищет в определенной папке каталоги, а в найденных каталогах смотрит есть ли там хоть один файл(вот тут как-раз очень долго работает). Как можно ускорить этот алгоритм?
function daj_typ(const dir:AnsiString):Integer;
var ret : Integer;
ssr : TSearchRec;
begin
ret := 0;
if FindFirst(daj_slash(dir)+'*.*', faAnyFile, ssr)=0 then
begin
repeat
if (ssr.Attr and faDirectory)=0 then
begin
ret := 1;
break;
end;
until FindNext(ssr)<>0;
end
else
begin
ret := 2;
end;
FindClose(ssr);
result := ret;
end;
Dmitrij_K (2005-12-29 14:40:00) [1]
> У тебя все папки имеют точку в названии?
Всегда так использую, и все находит.
Перефразируя, как быстро проверить, находится ли в папке что-нибудь?
На чистом винапи, те через findfirstfile ускорение минимальное.
TUser (2005-12-29 13:45:00) [2]Ускорить вряд ли. Смущает также вот такое условие
> daj_slash(dir)+'*.*'
У тебя все папки имеют точку в названии?
Anatoly Podgoretsky (2005-12-29 13:45:00) [3]Здесь нет поиска во вложенных папках