![]() |
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 |
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. |
Re: Datei-Attribute, mehrere
Du musst die Values der einzelnen Attribute addieren
|
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. |
Re: Datei-Attribute, mehrere
also statt + einfach OR hinschreiben ?
man lernt immer wieder was dazu.... |
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:
anstatt so:
SetFileAttributes('Pfad zur Datei'), FILE_ATTRIBUTE_SYSTEM and FILE_ATTRIBUTE_HIDDEN);
Delphi-Quellcode:
SetFileAttributes('Pfad zur Datei'), FILE_ATTRIBUTE_SYSTEM or FILE_ATTRIBUTE_HIDDEN);
|
Re: Datei-Attribute, mehrere
Moin MrKnogge,
Zitat:
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) |
Re: Datei-Attribute, mehrere
Hai MrKnogge,
zur verdeutlichung mal ein total theoretisches Beispiel: Attribute:
Code:
Wenn Du nun alle Atribute setzen möchtest und addierst bekommst Du
hidden = 1 (001)
system = 3 (011) achriv = 4 (100)
Code:
Sprich: Keines deiner Attribute ist gesetzt.
Alle = 8 (1000)
|
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