Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Findfirst findet Ordner wie System Volume Information nicht? (https://www.delphipraxis.net/111371-findfirst-findet-ordner-wie-system-volume-information-nicht.html)

Muetze1 2. Apr 2008 19:39

Re: Findfirst findet Ordner wie System Volume Information ni
 
Zitat:

Zitat von wido
Du kannst Deine Zeit aber gerne noch weiter damit vertreiben mich davon zu überzeugen, daß ich Unrecht habe und Du nicht. Mein Standpunkt, daß ich bei 2 möglichen Methoden stets die nutze, die dokumentiert ist, wird sich dadurch nicht ändern:

Wozu? Mir ging es um eine Erklärung und Richtigstellung für alle nachfolgenden Leser, Dokumentation der Unzulänglichkeit der Hilfe in diesem Falle. Ich bin nicht Priester o.ä. und es ist nicht meine Aufgabe. Ich gebe nur Ratschläge & Tipps und habe es zweimalig versucht - gut ist.

PS: Du bist nicht zufälligerweise Projektleiter oder CEO einer Firma?

richard_boderich 2. Apr 2008 20:40

Re: Findfirst findet Ordner wie System Volume Information ni
 
@Muetze1

Kannst du dir mal folgenden Aufruf anschauen?

Mein Findfirst...
Delphi-Quellcode:
if (FindFirst(ADirectory+AMask, faAnyFile,SR)=0) then´
und meine Auswertung zur Rekursion...
Delphi-Quellcode:
if (SR.Name<>'.') and (SR.Name<>'..') AND ((SR.attr And fadirectory)<>0)
faAnyfile sucht nach allem Files + Directorys. In der Rekursionsbedingung Werte ich ja mit
Delphi-Quellcode:
((SR.attr And fadirectory)<>0)
aus ob das Attribut faDirectory ist. Meine Frage wäre, ob diese Abfrage auch funktioniert, wenn ich ein Verzeichnis habe, was z.B.
versteckt ist. Also die Attribute faDirectory und faHidden besitzt oder z.B. faDirectory und faHidden und faSysfile.

Wenn nicht kannst du mir sagen wie ich darauf prüfen könnte?

mfG Richard

Luckie 2. Apr 2008 20:46

Re: Findfirst findet Ordner wie System Volume Information ni
 
Zitat:

Zitat von wido
Mein Standpunkt, daß ich bei 2 möglichen Methoden stets die nutze, die dokumentiert ist, wird sich dadurch nicht ändern:

Wie gerade gezeigt wurde, hat Borland / CodeGear die Dokumentation geändert (ich sage jetzt mal nicht "korrigiert"), was nun?

Muetze1 2. Apr 2008 20:57

Re: Findfirst findet Ordner wie System Volume Information ni
 
Zitat:

Zitat von richard_boderich
Meine Frage wäre, ob diese Abfrage auch funktioniert, wenn ich ein Verzeichnis habe, was z.B. versteckt ist. Also die Attribute faDirectory und faHidden besitzt oder z.B. faDirectory und faHidden und faSysfile.

Ja, der Code würde immer dann ansprechen, wenn das Attribut für ein Verzeichnis gesetzt ist. Welche Attribute zusätzlich gesetzt sind, geht in dieser Abfrage nicht mit rein.

Diese Bitmasken kannst du mit einer Menge übersetzen (wobei Delphi dies bei Sets andersherum sogar macht). Du prüfst nun damit nur ab, ob das Attribut "Directory" in dieser Menge ist. Ob andere Elemente in der Menge sind, fragst du ja nicht. Somit werden auch versteckte, als System etc. gekennzeichnete Einträge auch mit durchgelassen - Hauptsache das Bit für ein Verzeichnis ist gesetzt.

Wenn du dir die Konstanten anschaust (also faDirectory, faReadOnly, faSystem, etc), dann stellt man leicht fest, dass es immer nur einzelne Bits sind. Mit der AND Operation führst du ein binäres UND durch und maskierst damit alle anderen Bits, bis auf die gesetzten des 2. Parameters, aus. Da dein zweiter Parameter nur ein Bit gesetzt hat, ist nach der UND Verknüpfung entweder genau das Bit gesetzt oder gar keins.

Wir hatten gerade ein paar ausführliche Erklärungen dazu. Dort hatten wir alle zusammen das eigentlich ganz gut erklärt. Dann wird das bestimmt auch etwas klarer warum und wie das ganze funktioniert.

richard_boderich 2. Apr 2008 21:07

Re: Findfirst findet Ordner wie System Volume Information ni
 
besten Dank :)

mfG Richard


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 3 von 3     123   

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