Thema: Delphi Versteckte Ordner listen

Einzelnen Beitrag anzeigen

Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#1

Versteckte Ordner listen

  Alt 19. Feb 2011, 13:02
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

Geändert von Cyberstorm (19. Feb 2011 um 13:05 Uhr)
  Mit Zitat antworten Zitat