Funktionreferenz


FileGetAttrib

Beschreibung anzeigen in

Gibt einen String zurück, der die Attribute einer Datei repräsentiert.

FileGetAttrib ( "filename" )

Parameter

filename Der Pfad zur zu untersuchenden Datei bzw. zum zu untersuchenden Verzeichnis

Rückgabewert

Erfolg: Ein String, der die Attribute einer Datei repräsentiert.
Fehler: Ein leerer String. Setzt @error auf 1.

Bemerkungen

Der zurückgegebene String kann eine Kombination der Buchstaben "RASHNDOCTX" sein:
    "R" = Schreibgeschützt (READONLY)
    "A" = Archiv (ARCHIVE)
    "S" = System (SYSTEM)
    "H" = Versteckt (HIDDEN)
    "N" = Normal (NORMAL)
    "D" = Verzeichnis (DIRECTORY)
    "O" = Offline (OFFLINE)
    "C" = Komprimiert (NTFS-, nicht ZIP-Kompression, COMPRESSED
    "T" = Temporär (TEMPORARY)
    "X" = EFS Verschlüsselung

Verwandte Funktionen

FileExists, FileGetSize, FileGetTime, FileSetAttrib, FileSetTime

Beispiel

Beispiel 1

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich um die Dateigenschaften des aktuellen Skripts zu speichern.
    Local Const $sAttribute = FileGetAttrib(@ScriptFullPath)

    ; Zeigt den String der durch FileGetAttrib zurückgegeben wurde.
    MsgBox($MB_SYSTEMMODAL, "", "Die Attribute des Strings: " & @CRLF & $sAttribute)

    ; Zeigt den String der durch AttributeToString zurückgegeben wurde.
    MsgBox($MB_SYSTEMMODAL, "", "Die Attribute des String mit leichter zu verstehenden Werten: " & @CRLF & _
            AttributeToString($sAttribute))
EndFunc   ;==>Example

Func AttributeToString($sAttribute)
    ; Erstellt ein 1D Array, das die Buchstaben der Dateiattribute enthält. Dabei wird der String beim Komma getrennt.
    Local $aInput = StringSplit("R,A,S,H,N,D,O,C,T", ",")

    ; Erstellt ein 1D Array, das die Dateiattributsbezeichnungen enthält. Dabei wird der String beim Komma getrennt.
    Local $aOutput = StringSplit("Read-only /, Archive /, System /, Hidden /" & _
            ", Normal /, Directory /, Offline /, Compressed /, Temporary /", ",")

    ; Ersetzt innerhalb der Schleife die Buchstaben der Dateiattribute durch die Dateiattributsbezeichnungen, z.B. A wird durch Archive oder S durch System ersetzt.
    For $i = 1 To $aInput[0]
        $sAttribute = StringReplace($sAttribute, $aInput[$i], $aOutput[$i], 0, $STR_CASESENSE)
    Next

    ; Entfernt das einfache Leerzeichen und den angehängten Slash.
    $sAttribute = StringTrimRight($sAttribute, 2)

    ; Gibt die konvertierten Dateiattributsbuchstaben aus.
    Return $sAttribute
EndFunc   ;==>AttributeToString

Beispiel 2

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Weist einer Variable den Dateipfad zu, um zu prüfen, ob dieser eine Datei ist.
    Local $sFilePath = @ScriptFullPath

    If IsFile($sFilePath) Then
        MsgBox($MB_SYSTEMMODAL, "", "Der Dateipfad ist eine Datei.")
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Der Dateipfad ist keine Datei.")
    EndIf
EndFunc   ;==>Example

; Prüft, ob der Dateipfad eine Datei ist. Prüft nicht, ob die Datei existiert.
Func IsFile($sFilePath)
    Return StringInStr(FileGetAttrib($sFilePath), "D") = 0
EndFunc   ;==>IsFile

Beispiel 3

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Weist einer Variable den Dateipfad zu, um zu prüfen, ob dieser ein Ordner ist.
    Local $sFilePath = @ScriptDir

    If IsDir($sFilePath) Then
        MsgBox($MB_SYSTEMMODAL, "", "Der Dateipfad ist ein Ordner.")
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Der Dateipfad ist kein Ordner.")
    EndIf
EndFunc   ;==>Example

; Prüft, ob der Dateipfad ein Ordner ist. Prüft nicht, ob der Ordner existiert.
Func IsDir($sFilePath)
    Return StringInStr(FileGetAttrib($sFilePath), "D") > 0
EndFunc   ;==>IsDir