Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Еще раз Поиск фалов.... [D5, D6, Win95/98]


TankMan ©   (2002-10-07 00:33:00) 

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


Dimka Maslov   (2002-10-07 10:38:00) [1]

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


Pat   (2002-10-07 01:16:00) [2]

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

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;


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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо