Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei-Attribute, mehrere (https://www.delphipraxis.net/13380-datei-attribute-mehrere.html)

woelfchen 17. Dez 2003 11:21


Datei-Attribute, mehrere
 
Hallo zusammen!

ich sitz' hier vor einem kleinen Problem mit Datei-Attributen. Ich möchte einer Datei die Attribute hidden und system (für "Geschützte Systemdatei") geben.

Allerdings komm' ich da mit "SetFileAttributes" nicht so recht weiter, damit geht ja nur ein Attribut, oder hab' ich da was übersehen? Führe ich "SetFileAttributes" zweimal hintereinander aus, hat die besagte Datei nur das Attribut des "letzten" eintrags...

Die Lösung ist sicher recht einfach, ich komm' nur nicht drauf...


woelfchen

Christian Seehase 17. Dez 2003 11:29

Re: Datei-Attribute, mehrere
 
Moin Woelfchen,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Du kannst mit SetFileAttributes alle gewünschten Attribute gleichzeitig setzen, besser gesagt, Du musst es sogar so machen.
Die Attribute müssen mit OR zusammengesetzt werden.

MrKnogge 17. Dez 2003 11:31

Re: Datei-Attribute, mehrere
 
Du musst die Values der einzelnen Attribute addieren

Christian Seehase 17. Dez 2003 11:36

Re: Datei-Attribute, mehrere
 
Moin MrKnogge,

von der Addition für die Verknüpfung würde ich prinzipiell abraten.
In den meisten Fällen wird es gutgehen, sollte man dabei aber mal, unabsichtlich, eine Konstate dazwischenmischen, die für eine Kombination anderer Werte steht kann man sich mit Addition Probleme einhandeln, da die Position der Bits wichtig ist.

MrKnogge 17. Dez 2003 11:42

Re: Datei-Attribute, mehrere
 
also statt + einfach OR hinschreiben ?

man lernt immer wieder was dazu....

woelfchen 17. Dez 2003 11:45

Re: Datei-Attribute, mehrere
 
danke erstmal für's herzliche willkommen und die antwort(en)...

hab's nun hinbekommen (ich hatte vorher fälschlicherweise 'and' statt 'or' genommen)!

also so:

Delphi-Quellcode:
SetFileAttributes('Pfad zur Datei'), FILE_ATTRIBUTE_SYSTEM and FILE_ATTRIBUTE_HIDDEN);
anstatt so:

Delphi-Quellcode:
SetFileAttributes('Pfad zur Datei'), FILE_ATTRIBUTE_SYSTEM or FILE_ATTRIBUTE_HIDDEN);

Christian Seehase 17. Dez 2003 11:46

Re: Datei-Attribute, mehrere
 
Moin MrKnogge,

Zitat:

Zitat von MrKnogge
also statt + einfach OR hinschreiben ?

genau.
Das sollte man immer machen, wenn man Konstanten kombiniert übergeben darf, auch bei den Delphi eigenen Funktionen, da diese ja oft nur die APIs kapseln. (auch wenn es in der Hilfe, z.B. bei FindFirst, anders steht)

Sharky 17. Dez 2003 11:48

Re: Datei-Attribute, mehrere
 
Hai MrKnogge,

zur verdeutlichung mal ein total theoretisches Beispiel:

Attribute:

Code:
hidden = 1  (001)
system = 3  (011)
achriv = 4  (100)
Wenn Du nun alle Atribute setzen möchtest und addierst bekommst Du

Code:
Alle = 8 (1000)
Sprich: Keines deiner Attribute ist gesetzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 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