Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Directorylisting (https://www.delphipraxis.net/41438-directorylisting.html)

Kryoko 3. Mär 2005 11:59


Directorylisting
 
Hi there.

Eigentlich müsste
Delphi-Quellcode:
 FindFirst(APath + '*.*', faDirectory, F)
kombiniert mit FindNext und einer If Abfrage
Delphi-Quellcode:
if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) > 0)
ja alle Directories in einem Pfad finden, wenn Rekursiv aufgerufen.
Es findet aber nicht alle.
Testlauf auf D:\ sagt 5941, Windows sagt 5956.
Wenn ich
Delphi-Quellcode:
  FindFirst(APath + '*.*', faDirectory, F)
in
Delphi-Quellcode:
  FindFirst(APath + '*.*', faAnyFile, F)
ändere, findet meine Routine auch 5956 Ordner.

Meine Frage nun : Welche Ordner fallen aus dem Schema ??
Welche Ordner werden mit faDirectory nicht erfasst ?

alcaeus 3. Mär 2005 12:00

Re: Directorylisting
 
Hallo Kryoko,

Verzeichnisse bei welchen faHidden oder faSystem gesetzt sind werden bei einer Suche mit faDirectory (natürlich) nicht gefunden ;)

Greetz
alcaeus

Kryoko 3. Mär 2005 12:39

Re: Directorylisting
 
Wenn es nur einen Typ von Ordner gäbe, wäre das aber unlogisch.
Dann wäre sowas nämlich ein Attribute, das an den Ordner angehängt wird und somit für die Suche egal
Code:
     ===>  Ordner  <== (gesucht)
              |
       _______|________________________
       |              |          |
     Versteckter   System    . . .
      Ordner       Ordner
...

alcaeus 3. Mär 2005 12:41

Re: Directorylisting
 
In dem Fall müsstes du den FindFirst-Aufruf so machen:
Delphi-Quellcode:
FindFirst(APath + '*.*', faDirectory+faSystem, F)
Es werden ja nur Dateien/Ordner gefunden, auf die die Suchkriterien genau zutreffen.

Greetz
alcaeus

Kryoko 3. Mär 2005 12:44

Re: Directorylisting
 
Das Suchkritierium ist : Ordner.
Auch ein System- / Versteckterordner ist und bleibt doch nur ein Ordner.
Und damit müssten diese Ordner auch gefunden werden.

Wie du sicherlich merkst finde ich das irgendwie unlogisch.

EDIT: Du hast zwar recht, ich finds aber unlogisch.

alcaeus 3. Mär 2005 12:46

Re: Directorylisting
 
Ja, allerdings hat ein Systemordner die Attribute "Ordner" und "System" gesetzt. Bei der Suche wird genau verglichen, also in deinem Fall nur Elemente, bei welchen nur das Attribut "Ordner" gesetzt ist. Wenn ich nämlich nur normale Ordner haben will, dann sollten keine Systemordner auch rauskommen ;)

Greetz
alcaeus

Kryoko 3. Mär 2005 12:49

Re: Directorylisting
 
Hm...
:?

Naja...ist ja nicht so das ich es nicht verstehe...ich finds einfach nur...irgendwie unlogisch :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz