Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
Delphi 2007 Enterprise
|
Re: Ordner prüfen ob er leer ist
17. Mär 2008, 12: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
|
|
Zitat
|