unit GFiles;
interface
uses
Windows, Sysutils, LZExpand, Classes;
type
TFichier = class
Nom: TFileName;
Chemin: String;
Taille: Integer;
Date: Integer;
Attr: Integer;
procedure Assign(Fichier: TFichier);
end;
function FSearch(Fichier : string; Path : string; Rec: Boolean) : TList;
implementation
function FSearch(Fichier : string; Path : string; Rec: Boolean) : TList;
var
F: TSearchRec;
r: Integer;
ReturnS: TList;
MyFichier: TFichier;
begin
ReturnS := TList.Create;
r := FindFirst(Path + '\' + Fichier, $03F, F);
while r = 0 do
begin
if (F.Name <> '.') and (F.Name <> '..') then
begin
MyFichier := TFichier.Create;
with MyFichier do
begin
Chemin := Path + '\';
Nom := F.Name;
Taille := F.Size;
Date := F.Time;
Attr := F.Attr;
end;
ReturnS.Add(MyFichier);
end;
r := FindNext(F);
end;
FindClose(F);
if Rec then
begin
r := FindFirst(Path + '\*.*', $03F, F);
while r = 0 do
begin
if (F.Attr and $10 <> 0) and (F.Name <> '.') and (F.Name <> '..') then
ReturnS.Assign(FSearch(Fichier, Path + '\' + F.Name, True), laOr);
//ReturnS.AddStrings(FSearch(Fichier, Path + '\' + F.Name, True));
r := FindNext(F);
end;
FindClose(F);
end;
Result := ReturnS;
end; |