Hallo. Ich programmiere gerade an einer Backuplösung. Diese soll auch Dateien in versteckten Ordnern sichern wie z.B. den Inhalt der "__history" Ordner von Delphi-Projekten.
Leider listed die Funktion die ich benutze diese nicht und ich habe dazu auch nichts im Netz gefunden.
Hier ist die Funktion die ich nutze:
Delphi-Quellcode:
function ListFilesRecursive(Path, Mask: String; ShowPath: Boolean): TStringList;
var
SR: TSearchRec;
Erg, I: Integer;
RelDir, TempStr : String;
TempList: TStringList;
begin
if Path[length(Path)] <> '\' then Path:=Path + '\';
RelDir:=ExtractFilePath(Mask);
Mask:=ExtractFileName(Mask);
result:=TStringList.Create;
TempList:=TStringList.Create;
Erg:=FindFirst(Path + RelDir + '*.*', faDirectory, SR);
while Erg=0 do
begin
if (SR.attr and faDirectory) <> 0 then
if SR.Name[1] <> '.' then
begin
TempList.Assign(ListFilesRecursive(Path, RelDir + SR.Name + '\' + Mask, ShowPath));
for I:=0 to TempList.Count-1 do
begin
TempStr:=TempList[I];
if ShowPath and not (TempStr[2]=':') then TempStr:=Path+TempStr;
result.Add(TempList[I]);
end;
end;
Erg:=FindNext(SR);
end;
Erg:=FindFirst(Path + RelDir + Mask, $27, SR);
{Das Attribut $27 bedeutet alle echten Dateien}
while Erg = 0 do
begin
if not ShowPath then result.Add(RelDir + SR.Name)
else result.Add(Path+RelDir + SR.Name);
Erg:=FindNext(SR);
end;
SysUtils.FindClose(SR);
TempList.Free;
end;
Mein Aufruf der Funktion:
Delphi-Quellcode:
procedure whatever;
var
sl: TStringList;
begin
sl:=ListFilesRecursive('c:\whatever\', '*.*', true);
...
FreeAndNil(sl);
end;
Vielen Dank & Grüße