20.63 Schutzbits-Informationen

Mit den Befehlen GetFileAttributes(), FileAttributes() und SetFileAttributes() können Sie die Schutzbits einer Datei oder eines Verzeichnisses abfragen und einstellen. Die Bits werden in einem einzigen Tabellenelement namens flags übergeben. Dieses Tabellenelement enthält eine Bitmaske, die eine Kombination der aktiven Bits ist.

Die Schutzbits sind von dem Host-Dateisystem abhängig, da nicht alle unten aufgeführten Bits auf allen Plattformen unterstützt werden. In den eckigen Klammern stehen für das jeweilige Bit die unterstützte Plattform.

Die folgenden Bits werden von Hollywood erkannt:

 
#FILEATTR_READ_USR        [AmigaOS, macOS, Linux, iOS, Android]
#FILEATTR_WRITE_USR       [AmigaOS, macOS, Linux, iOS, Android]
#FILEATTR_DELETE_USR      [AmigaOS]
#FILEATTR_EXECUTE_USR     [AmigaOS, macOS, Linux, iOS, Android]
#FILEATTR_READ_GRP        [macOS, Linux, iOS, Android]
#FILEATTR_WRITE_GRP       [macOS, Linux, iOS, Android]
#FILEATTR_EXECUTE_GRP     [macOS, Linux, iOS, Android]
#FILEATTR_READ_OTH        [macOS, Linux, iOS, Android]
#FILEATTR_WRITE_OTH       [macOS, Linux, iOS, Android]
#FILEATTR_EXECUTE_OTH     [macOS, Linux, iOS, Android]
#FILEATTR_PURE            [AmigaOS]
#FILEATTR_ARCHIVE         [AmigaOS, Windows]
#FILEATTR_SCRIPT          [AmigaOS]
#FILEATTR_HIDDEN          [AmigaOS, Windows]
#FILEATTR_SYSTEM          [Windows]
#FILEATTR_READONLY        [Windows]

Um mehrere dieser Attribute für eine Datei festzulegen, kombinieren Sie sie einfach mit dem Bitweise-Oder-Operator. Beispielsweise:

 
t = {}
t.flags = #FILEATTR_READ_USR | #FILEATTR_WRITE_USR
SetFileAttributes("test.txt", t)

Der obige Code erteilt die Erlaubnis, die Datei "test.txt" zu lesen und in sie zu schreiben. Bitte beachten Sie jedoch, dass dieser Code unter Windows nicht korrekt funktionieren würde, weil Windows diese beiden Bits nicht kennt.

Um zu überprüfen, ob ein Bit gesetzt ist, verwenden Sie den Bitweise-Und-Operator. Beispielsweise:

 
t = GetFileAttributes("test.txt")
If (t.flags & #FILEATTR_READ_USR)
   Print("#FILEATTR_READ_USR is set.")
EndIf

Es gibt noch ein anderes Bit namens #FILEATTR_NORMAL. Dieses Bit hat eine besondere Bedeutung und kann nur mit dem Befehl SetFileAttributes() gesetzt und nicht mit anderen Bits kombiniert verwendet werden. Wenn Sie #FILEATTR_NORMAL mit SetFileAttributes() übergeben, werden die Schutzbits der Datei in die Betriebssystem Einstellungen zurückgesetzt, die sich von Plattform zu Plattform unterscheiden.


Navigation zeigen