Форум: "Основная";
Текущий архив: 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.036 c