Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Сканирование дерева каталогов   Найти похожие ветки 

 
hiperLogun ©   (2004-04-25 01:32) [0]

Написал прогу которая сканирует сервер по сети с бооольшим количеством папок и файлов, и сохраняет структуру его дерева в файл (ну какбы индексирует сервер, нужно для быстроно поиска).
Посмотрел этот файл - а там некоторых папок вообще нет! Причем папок на верхушке дерева! Вчем дело - не знаю!
Подскажите пожалуйста какой нибудь сканирования дерева каталогов (100%-го).
СПАСИБО!


 
Rouse_ ©   (2004-04-25 03:07) [1]

Разве это называется поисковик алгоритмов?
Кажется сегодня он звался форумом...
А на форуме тебе подскажут, но никак не решат задачу...

Давай свой код в студию и будем разбирать...


 
Anatoly Podgoretsky ©   (2004-04-25 10:08) [2]

Ошибка в 17 строке.


 
hiperLogun ©   (2004-04-25 14:38) [3]

Вот, пожалуйста. Не знаю в чём дело, вроде всё руками делал.
Папок и файлов на сервере очень много и файл отчета получает под 11 метров. Тяжело контролировать правилно прога отсканировала или нет! Запускаю на поиск в какой нибудь маленькой ветке - всё путем, ошибок нет!

Сама процедура сканирования:
procedure TForm1.ScanTree(Path: string);
var
 SearchRec: TSearchRec;
 i: integer;
begin
 i := 0;
 FindFirst(Path+"\*.*", faDirectory, SearchRec);
 while FindNext(SearchRec) = 0 do
 begin
   if (SearchRec.Attr and faDirectory = faDirectory)
   and (SearchRec.Name[1] <>".") then
     begin
       if HasMp3(Path+"\"+SearchRec.Name+"\") then
         begin
           sTree.Add(Path+"\"+SearchRec.Name);
         end;
       ScanTree(Path+"\"+SearchRec.Name);
     end;
 end;
 FindClose(SearchRec);
end;

Проверяет есть в папке mp3-шки(мне надо чтобы в отчете были папки только с mp3-шками)
function HasMp3(Path: string): boolean;
var
 SearchRec: TSearchRec;
begin
 HasMp3 := False;
 FindFirst(Path + "\*.mp3", faAnyFile, SearchRec);
 while FindNext(SearchRec)=0 do
   begin
     if FileExists(Path + "\" + SearchRec.Name) then
       begin
         HasMp3 := True;
         Break;
       end;
   end;
 FindClose(SearchRec);
end;

З.Ы. Я в пинципе не просил помощи в решении всей задачи, просто может кто знает где можно взять инфу по этой теме!


 
MBo ©   (2004-04-25 14:54) [4]

> FindFirst(Path+"\*.*", faDirectory, SearchRec);
> while FindNext(SearchRec) = 0 do
так ты пропускаешь первое же найденное

if FindFirst()... then
repeat
...
until FindNext(SearchRec) <> 0;


 
hiperLogun ©   (2004-04-25 14:57) [5]

АААААААААААААААА! Балбес!!!
Спасибо огроменное! Вот тупанул!


 
hiperLogun ©   (2004-04-25 15:00) [6]

Да кстати, уважаемый MBo!
У меня там в разделе Media вопросик воляется, если не затруднит посмоти! Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
3-1081853258
Kirilll
2004-04-13 14:47
2004.04.11
Delphi+Clarion?


1-1079966087
Юкс
2004-03-22 17:34
2004.04.11
Проверка строки на число


14-1082010626
Layner
2004-04-15 10:30
2004.04.11
Юристы! Ломятся менты в дверь, хотят видимо показания взять


3-1081846406
DBDEV
2004-04-13 12:53
2004.04.11
Потокобезопасный TADOQuery.Open, помогите советом!


3-1079300757
ST
2004-03-15 00:45
2004.04.11
Rave