Юзай TFileInfo, TSearchRec. Напишешь процедуру типа: procedure FindFiles(dir:string); //каталог, откуда начать поиск var sRec:TSearchRec; res:integer; //результат поиска (0 или нет) begin res:=FindFirst(dir+'*.*',faAnyFile,sRec); //ищем первый файл res:=findNext(sRec);//ищем следующий файл While res=0 do begin if (sRec.Attr=faDirectory) and ((sRec.Name='.')or(sRec.Name='..')) then//чтобы не было файлов . и.. begin Res:=FindNext(sRec); Continue;//продолжаем цикл end;
if (sRec.Attr=faDirectory) then//если нашли директорию, то ищем файлы в ней begin FindFiles(cat+sRec.Name+'');//рекурсивно вызываем нашу процедуру Res:=FindNext(sRec);//ищем след. файл Continue;//продолжаем цикл end; //что то делаем с файлом, информация по которому хранится в sRec Res:=FindNext(sRec);//ищем след. файл end; FindClose(sRec);//освобождаем пересенную поиска end;
procedure FindFiles(dir:string); //каталог, откуда начать поиск
var
sRec:TSearchRec;
res:integer; //результат поиска (0 или нет)
begin
res:=FindFirst(dir+'*.*',faAnyFile,sRec); //ищем первый файл
res:=findNext(sRec);//ищем следующий файл
While res=0 do
begin
if (sRec.Attr=faDirectory) and ((sRec.Name='.')or(sRec.Name='..')) then//чтобы не было файлов . и..
begin
Res:=FindNext(sRec);
Continue;//продолжаем цикл
end;
if (sRec.Attr=faDirectory) then//если нашли директорию, то ищем файлы в ней
begin
FindFiles(cat+sRec.Name+'');//рекурсивно вызываем нашу процедуру
Res:=FindNext(sRec);//ищем след. файл
Continue;//продолжаем цикл
end;
//что то делаем с файлом, информация по которому хранится в sRec
Res:=FindNext(sRec);//ищем след. файл
end;
FindClose(sRec);//освобождаем пересенную поиска
end;
в хелпе по процедурам и функциям все найдешь.