Einzelnen Beitrag anzeigen

bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#26

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:10
Jetzt kam ich ins grübeln, wie ich das eigentlich mache. Ganz tief unten in der Code-Kiste fand ich die Kanone, mit der ich auf den Spatz schieße:
Delphi-Quellcode:
procedure GetListOfFiles(FileList: TStrings; Source, FileMask: string;
    Attributes, IgnoreAttributes: Integer; Recurse: Boolean);
var SearchDir: string;
    SearchRec: TSearchRec;
    Res : Integer;
    DirList : TStringList;
    i : Integer;
begin
  DirList := TStringList.Create;
  try
    SearchDir := AddBackSlashL(Source);
    Res := SysUtils.FindFirst(SearchDir + FileMask, Attributes, SearchRec);
    while (Res = 0) and (SearchRec.Name > '') do begin
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and
         ((Attributes = faAnyFile) or ((SearchRec.Attr and Attributes) <> 0)) and
         ((IgnoreAttributes = 0) or ((SearchRec.Attr and IgnoreAttributes) = 0)) then begin
        FileList.Add(SearchDir + SearchRec.Name);
      end;
      Res := FindNext(SearchRec);
    end;
    if Recurse and ((Attributes and faDirectory) = 0) then begin // Unterordner durchsuchen
      GetListOfFiles(DirList, Source, '*.*', faDirectory, 0, True);
      for i:=0 to Pred(DirList.Count) do begin
        GetListOfFiles(FileList, DirList[i], FileMask, Attributes, 0, True);
      end;
    end;
  finally
    SysUtils.FindClose(SearchRec);
    DirList.Free;
  end;
end;

function IsDirEmpty(const Dir: string): Boolean;
var SL : TStringList;
begin
  SL := TStringList.Create;
  try
    GetListOfFiles(SL, Dir, '*.*', faAnyFile - faDirectory, 0, False);
    Result := SL.Count = 0;
  finally
    SL.Free;
  end;
end;
Nu, der Spatz ist garantiert tot!
Klaus M. Hoffmann
  Mit Zitat antworten Zitat