Re: Ordner prüfen ob er leer ist
@Manuel: Fehlt da nicht ein FindNext?
|
Re: Ordner prüfen ob er leer ist
@Muhkuh: Aber auch deine Funktion erkennt Directories als Files - oder??
|
Re: Ordner prüfen ob er leer ist
jetzt bin total verwirrt bei mir funktioniert so gut wie keine lösung richtig
|
Re: Ordner prüfen ob er leer ist
Zitat:
|
Re: Ordner prüfen ob er leer ist
Wieso schlimm, kommt natürlich auf die Aufgabenstellung an :mrgreen:
|
Re: Ordner prüfen ob er leer ist
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:
Nu, der Spatz ist garantiert tot! :mrgreen:
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; |
Re: Ordner prüfen ob er leer ist
Noch' n Gedicht :mrgreen:
Delphi-Quellcode:
function IsFolderEmpty(const Foldername: string): Boolean;
var Rec: TSearchRec; begin Result := false; if FindFirst(IncludeTrailingPathDelimiter(Foldername) + '*.*',faAnyFile,Rec) = 0 then begin repeat Result := (Rec.Name = '.') or (Rec.Name = '..'); until (FindNext(Rec) <> 0) or not Result; FindClose(Rec); end; end; |
Re: Ordner prüfen ob er leer ist
Zitat:
|
Re: Ordner prüfen ob er leer ist
Ok Danke funktioniert so
gruss sascha |
Re: Ordner prüfen ob er leer ist
Zitat:
Delphi-Quellcode:
function IsDirectoryEmtpy(const AsFolder : string) : Boolean;
var sr : TSearchRec; begin Result := FindFirst(IncludeTrailingPathDelimiter(AsFolder)+'*.*',faAnyFile,sr) = 0; if Result then begin try Result := (FindNext(sr) = 0) and (FindNext(sr) <> 0); finally FindClose(sr); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz