Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


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

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


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

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

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


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

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

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


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

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


 
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;

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


 
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;


 
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 14:57) [5]

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


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

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


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

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



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.032 c
6-1079380703
lena19
2004-03-15 22:58
2004.05.09
serversocket кривыми ручками


14-1082352021
Романов Р.В.
2004-04-19 09:20
2004.05.09
Support и его уровень


8-1076756002
NEOMEN
2004-02-14 13:53
2004.05.09
Взаимодействие Flash и Delphi


7-1078743352
-=наблюдатель=-
2004-03-08 13:55
2004.05.09
Lock


1-1082467091
siriusP
2004-04-20 17:18
2004.05.09
Вопрос по созданию компонент.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский