Re: Ordner prüfen ob er leer ist
Mit OR die Strings verketten? Nee, wie sollte das funktionieren?
|
Re: Ordner prüfen ob er leer ist
|
Re: Ordner prüfen ob er leer ist
Das ist dort ja nahezu genial gelöst!
|
Re: Ordner prüfen ob er leer ist
Also ich kann machen was ich will ich bekomm immer nur ein false rause
Delphi-Quellcode:
mach ich was falschdirectory:= (Form1.ServerPfad + 'DokumentenurRTF'); isEmpty := IsDirectoryEmpty(directory) ; ShowMessage(BoolToStr(isEmpty,true)) ; function TForm5.IsDirectoryEmpty(const directory: string): boolean; var searchRec :TSearchRec; begin try result := (FindFirst(directory+'\*.*', faAnyFile, searchRec) = 0) AND (FindNext(searchRec) = 0) AND (FindNext(searchRec) <> 0) ; finally FindClose(searchRec) ; end; end; |
Re: Ordner prüfen ob er leer ist
autsch. Die Lösung gefällt mir überhaupt nicht. Aber das ist geschmacksache. Am besten weißt du die Ergebnisse erstmal auf temporäre Variablen zu dann kannst du debuggen warum du nicht das gewünschte Ergebnis bekommst.
|
Re: Ordner prüfen ob er leer ist
Das ergebnis ist doch auf eine Variable zugewiesen
Delphi-Quellcode:
oder verstehe ich das falsch
isEmpty : boolean;
|
Re: Ordner prüfen ob er leer ist
Moin, Moin SirThornberry!
Was gefällt dir an der Lösung nicht (abgesehen davon, dass sie keine korrekten Ergebnisse liefert) - Subdirectories werden in der Originalform leider auch als Files erkannt! Aber sonst ist sie doch optinal kurz: FindFirst findet ".", das erste FindNext findet "..", das zweite FindNext enstscheidet dann (leider falsch) |
Re: Ordner prüfen ob er leer ist
mir gefällt an der Lösung zum Beispiel nicht das FindClose auch aufgerufen wird wenn FindFirst fehlschlägt. Das ist zwar erlaubt aber überflüssig. Der Sinn von Try-Finally bleibt mir an der Stelle auch Schleierhaft. Es ist nirgends Code der eine Exception erzeugen könnte.
|
Re: Ordner prüfen ob er leer ist
Hi,
ich werfe mal diese Funktion in den Raum:
Delphi-Quellcode:
function IsDirectoryEmpty(Directory: String): Boolean;
var SR: TSearchRec; begin Result := false; if FindFirst(Directory, faAnyFile, SR) = 0 then begin repeat Result := (SR.Name <> '.') and (SR.Name <> '..'); until Result; FindClose(SR); end; end; |
Re: Ordner prüfen ob er leer ist
Ja, das sind nachvollziehbare Argumente :hi:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 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