Вот мой пример рекурсивного поиска файлов в указанном каталоге с подкаталогами
| Код | //==================Поиск файлов============== procedure GetFile(Dir: string; ras: string); var f : TSearchRec; i : integer; s, key : string; begin i := FindFirst(Dir+ras, faAnyFile, f); while (i=0) do begin s := Dir+f.Name; NumOfFile:=NumOfFile + 1; IniFile.WriteInteger('Num', 'Num', NumOfFile); str(NumOfFile, key); IniFile.WriteString('WPath', key, s); Form1.StatusBar1.SimpleText := 'Find '+ key + ' files'; i := FindNext(f); Application.ProcessMessages; end; FindClose(f); end;
//==================Поиск дирикторий============== procedure GetDir(Dir: string); var f : TSearchRec; i : integer; JPGFlag: Boolean; begin i := FindFirst(Dir+'*.*', faDirectory, f); JPGFlag := IniFile.ReadBool('Options', 'ADD', false); if JPGFlag = false then GetFile(Dir, '*.BMP') else begin GetFile(Dir, '*.BMP'); GetFile(Dir, '*.JPG'); GetFile(Dir, '*.JPEG'); end;
while (i=0) do begin if (f.Name='.') or (f.Name='..') then else begin if (f.Attr and faDirectory)<>0 then begin GetDir(Dir+f.Name+'\'); Application.ProcessMessages; end else begin i := FindNext(f); end; end; i := FindNext(f); Application.ProcessMessages; end; FindClose(f); end;
| |