![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Find files [D6, WinME]
Sterh © (2003-01-22 18:30:00)Люди помогите надо организовать оч быстрый поиск файлов.. Например так запускается поток ищет в начальной дире находит вложенные диры запукает 3 нити они шарят во вложенных папках, он смотрит в этой затем переходит во вложенную итд ....
Anatoly Podgoretsky (2003-01-22 19:47:00) [1]Не в FAT, а по оглавлению, которое разбросано по всему диску, частный случай когда в начале.
Palladin (2003-01-22 19:21:00) [2]Да. Действительно.
Тебе дело говорят.
Самое простое рекурсией пройтись по порядку.
Поиск файлов не по винту идет, а в FAT которая в начале диска. Смысла в много поточности большого не вижу.
Anatoly Podgoretsky (2003-01-22 19:15:00) [3]Sterh © (22.01.03 18:30)
Твой путь приведет к серьезнрому замедлению, не надо искать паралельно, механика это очень медленная штука.
Palladin (2003-01-22 19:07:00) [4]напиши простой (в смысле не потоковый) метод поиска файлов (процедуру) на входе которого будет путь поиска и условие поиска (маска тобишь)
и пусть этот метод будет рекурсивным.
а после того как все это отработано будет...
заверни в обложку потоков. где вместо рекурсии ессно будет создание однотипного потока с новой директорией.
вопрос по поводу сохранения результата можно решить след. способом
var
FilesCS:TCriticalSection;
Files:TStringList;
procedure AddFile(p_strFullFileName:string);
begin
FilesCS.Enter;
Files.Add(p_strFullFileName);
FilesCS.Leave;
end;
насколько это будет быстро сказать не могу.
если надо уж оченьбыстро, то вопрос к знатокам асма.