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

Вниз

Еще раз Поиск фалов....   Найти похожие ветки 

 
TankMan ©   (2002-10-07 00:33) [0]

Я вижу тут задавали вопрос по поводу поиска файла, но у меня другая проблема, я знаю как искать, знаю как пользоватся, но вот например у меня здача найти все файлы в указанной директории и поддирикториях, все файлы - дубликаты, точнее, файлы, имеющие одинаковое имя, но разное разширение, я парился всю ночь но понял, что очень сильно запутался, я смог искать файлы, только в в указанной директории, и в поддиректориях первого уровня, но код получился оочень громоздкий, и я понял, что поддиректории хотябы 2 уровня мне не осилить, может я делаю что-то принципиально не правильно, может кто-то даст пример эффективного поиска, хотябы просто файлов в указанной директории, и поддиректориях.
Заранее благодарен


 
rhf ©   (2002-10-07 00:49) [1]

ищте файлы по маске в текущей папке
затем для каждой вложенной папки вызываете эту же процедуру
получаете рекурсию...........


 
TankMan ©   (2002-10-07 00:58) [2]

Я это понимаю, но при попытке это реализовать... у меня не получилось просто напросто... я запутался вообще...
не льзя ли примерчик?


 
Pat ©   (2002-10-07 01:16) [3]

>пример эффективного поиска, хотябы просто файлов в указанной
>директории, и поддиректориях

procedure ScanDir(aPath: String; var aList: TStringList);
var
SR: TSearchRec;
tPath: String;
begin
tPath := IncludeTrailingBackSlash(aPath);
if FindFirst(tPath+"*.*",faAnyFile,SR) = 0 then
begin
try
repeat
if SR.Name[1]="." then Continue;
case (SR.Attr and faDirectory) of
faDirectory: ScanDir(tPath+SR.Name,aList);
else aList.Add(tPath+SR.Name);
end;
until FindNext(SR)<>0;
finally
sysutils.FindClose(SR);
end;
end;
end;



 
Dimka Maslov ©   (2002-10-07 10:38) [4]

http://delphibase.endimus.com/?action=viewfunc&topic=fileops&id=10046



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
1-59227
Ученик
2002-11-06 14:45
2002.11.18
Round(4.5) = 4, Round(5.5) = 6


14-59419
Николай Быков
2002-10-15 16:58
2002.11.18
Подскажите книжечку в электронном формате по OpenGL


14-59403
Semion
2002-10-30 08:22
2002.11.18
Borland Paskal


14-59353
keymaster
2002-10-29 16:21
2002.11.18
математика


1-59225
Delphi Maniak
2002-11-06 17:19
2002.11.18
Ошибка...