![]() |
Ordner nicht gleich Ordner? Gibt es Unterschiede?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Gibt es eigentlich Unterschiede bei Ordnern? Ich lasse mir Ordner in einem TreeView anzeigen, und folgender Code sucht nach den Ordnern:
Delphi-Quellcode:
Das funktioniert soweit gut. Aber kürzlich habe ich es mit meinem USB Stick versucht und dabei ist mir aufgefallen das zwei Ordner nicht aufgeführt sind, normale Ordner aber schon.
var
path : string; search : TSearchRec; nc : TTreeNode; begin if n = nil then exit; path := GetDirStr(n); if findfirst(path + '*.*',faDirectory,search) = 0 then repeat if ((search.attr and fadirectory)= fadirectory)and (search.name <> '.')and(search.name <> '..') then begin // end; until findnext(Search)<>0; findClose(Search); end; Gibt es Unterschiede Bei Ordnern? Oder woran könnte es liegen? Vielen Dank, Chris |
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Halloo Chris,
vielleicht wurden den beiden Ordnern zusätzliche Attribute verliehen?
Delphi-Quellcode:
Freundliche Grüße
if FindFirst(path + '*.*', faDirectory + faSysFile + faHidden, search) = 0 then
repeat if ((search.attr and fadirectory) = fadirectory) and (Pos(search.name, '..') = 0)) then begin // end; until FindNext(search) <> 0; FindClose(search); |
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
prüf doch mal mit dem debugger welche attr. die ordner haben... oder lass dir die ganzen attribute in eine liste ausgeben...
dann siehst du es am schnellsten... |
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
[OT]
Aber sowas sollte man doch gar keinem erst beibringen :wink:
Delphi-Quellcode:
Durch die Compilermagic mag dies funktionieren. Aber Anfänger die ältere Versionen verwenden suchen dann ewig nach dem Fehler wenn sie sich sowas angewöhnen.
faDirectory + faSysFile + faHidden
Anhand der Symbole im Screenshot vermute ich das die Attribute System und Hidden gesetzt sind und in dem Ordner eine Desktop.ini liegt. |
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Wieso nicht gleich faAnyFile, wenn das faDirectory-Flag anschließend ausgewertet wird?
|
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Danke an alle. Hab nur faDirectory in faAnyFile geändert und es funktioniert.
Gruss Chris |
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Zitat:
Delphi-Quellcode:
faDirectory or faSysFile or faHidden
|
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
kommt in diesem fall aus selbe raus, da die masken distinct sind...
|
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Trotzdem sollte man es gleich richtig machen, sonst wundert man sich später.
|
Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?
Hallo Jens,
Zitat:
Mit Compiler Magic hat das Addieren von ganzzahligen Konstanten übrigens nichts zu tun. Die ODER-Verknüpfung ist vorteilhaft bei Bit-Schaltern, die im Laufe der Zeit um Aliasse oder Sammelmasken angereichert wurden. Sie schützt den Unkundigen vor Stellenüberträgen. Im vorliegenden Fall wäre die Summe von faAnyFile und einer der anderen Konstanten fatal. Übrigens auch die Delphi-Hilfe richtet sich nicht an Anfänger: DOH - Topic Findfirst ... Sie können auch mehrere Attribute kombinieren, indem Sie die betreffenden Konstanten hinzufügen (Delphi) bzw. eine ODER-Verknüpfung (C++) durchführen. Soll beispielsweise zusätzlich zu den normalen auch nach schreibgeschützten und versteckten Dateien gesucht werden, übergeben Sie als Parameter Attr in Delphi den Wert (faReadOnly + faHidden) ... Und zur Frage von Detlef: faAnyFile ist für Schreibfaule oder solche, die Dateiattribute lieber erst gar nicht kennen lernen wollen. Und weil du gerade nochmal etwas geschrieben hast: Richtig oder Falsch gibt es hier nicht. Wenn das richtige Ergebnis reproduzierbar ist, dann ist der Weg richtig. Du meinst bestimmt etwas anderes und hast nur die falschen Worte benutzt. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 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