Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ordner prüfen ob er leer ist (https://www.delphipraxis.net/110375-ordner-pruefen-ob-er-leer-ist.html)

taaktaak 17. Mär 2008 10:00

Re: Ordner prüfen ob er leer ist
 
Mit OR die Strings verketten? Nee, wie sollte das funktionieren?

Klaus01 17. Mär 2008 10:03

Re: Ordner prüfen ob er leer ist
 
Hallo Sascha,

habe noch diesen Code gefunden.
Dort wird auf *.* geprüft.

Grüße
Klaus

taaktaak 17. Mär 2008 10:09

Re: Ordner prüfen ob er leer ist
 
Das ist dort ja nahezu genial gelöst!

SaFu 17. Mär 2008 10:32

Re: Ordner prüfen ob er leer ist
 
Also ich kann machen was ich will ich bekomm immer nur ein false rause
Delphi-Quellcode:

directory:= (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;
mach ich was falsch

SirThornberry 17. Mär 2008 10:37

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.

SaFu 17. Mär 2008 10:43

Re: Ordner prüfen ob er leer ist
 
Das ergebnis ist doch auf eine Variable zugewiesen

Delphi-Quellcode:
isEmpty : boolean;
oder verstehe ich das falsch

taaktaak 17. Mär 2008 10:51

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)

SirThornberry 17. Mär 2008 10:57

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.

Die Muhkuh 17. Mär 2008 10:59

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;

taaktaak 17. Mär 2008 11:00

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.
Seite 2 von 4     12 34      

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