AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ordner nicht gleich Ordner? Gibt es Unterschiede?
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner nicht gleich Ordner? Gibt es Unterschiede?

Ein Thema von formosa · begonnen am 30. Aug 2008 · letzter Beitrag vom 30. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
formosa

Registriert seit: 8. Apr 2006
Ort: Shanghai
29 Beiträge
 
Delphi 7 Professional
 
#1

Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 10:57
Hallo,

Gibt es eigentlich Unterschiede bei Ordnern? Ich lasse mir Ordner in einem TreeView anzeigen, und folgender Code sucht nach den Ordnern:

Delphi-Quellcode:
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;
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.

Gibt es Unterschiede Bei Ordnern? Oder woran könnte es liegen?

Vielen Dank,

Chris
Miniaturansicht angehängter Grafiken
screenshot_854.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 11:30
Halloo Chris,

vielleicht wurden den beiden Ordnern zusätzliche Attribute verliehen?

Delphi-Quellcode:
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);
Freundliche Grüße
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#3

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 11:37
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...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 11:38
[OT]
Aber sowas sollte man doch gar keinem erst beibringen
faDirectory + faSysFile + faHidden 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.

Anhand der Symbole im Screenshot vermute ich das die Attribute System und Hidden gesetzt sind und in dem Ordner eine Desktop.ini liegt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 11:43
Wieso nicht gleich faAnyFile, wenn das faDirectory-Flag anschließend ausgewertet wird?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
formosa

Registriert seit: 8. Apr 2006
Ort: Shanghai
29 Beiträge
 
Delphi 7 Professional
 
#6

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 11:54
Danke an alle. Hab nur faDirectory in faAnyFile geändert und es funktioniert.

Gruss Chris
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 12:41
Zitat von SirThornberry:
[OT]
Aber sowas sollte man doch gar keinem erst beibringen
faDirectory + faSysFile + faHidden 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.
Um es noch richtig aufzuschreiben, verknüpfen von Bitmasken funktioniert mit OR und nicht mit and oder +:

faDirectory or faSysFile or faHidden
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#8

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 12:50
kommt in diesem fall aus selbe raus, da die masken distinct sind...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 13:03
Trotzdem sollte man es gleich richtig machen, sonst wundert man sich später.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Ordner nicht gleich Ordner? Gibt es Unterschiede?

  Alt 30. Aug 2008, 13:10
Hallo Jens,

Zitat von SirThornberry:
... Aber sowas sollte man doch gar keinem erst beibringen ... Durch die Compilermagic mag dies funktionieren. ...
dein Hinweis ist zwar nicht falsch, aber für einen wirklichen Anfänger mindestens so verwirrend, wie das unerwartete Ergebnis bei FindFirst(..., faHidden + faHidden, ...). Wenn du also etwas für die Ausbildung der Ungelernten tuen möchtest, dann musst du die Zusammenhänge erläutern oder einen Link setzen. Ich wollte mir das ersparen.

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 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