Gibt einen String zurück, der die Attribute einer Datei repräsentiert.
FileGetAttrib ( "filename" )
| filename | Der Pfad zur zu untersuchenden Datei bzw. zum zu untersuchenden Verzeichnis |
| Erfolg: | Ein String, der die Attribute einer Datei repräsentiert. |
| Fehler: | Ein leerer String. Setzt @error auf 1. |
Der zurückgegebene String kann eine Kombination der Buchstaben "RASHNDOCTXJ" 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
"J" = Verknüpfter Ordner (JOIN FOLDER) (erstellt mit FileCreateNTFSLink())
FileExists, FileGetSize, FileGetTime, FileSetAttrib, FileSetTime, FileCreateNTFSLink
#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,J", ",")
; 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 /, JoinFolder /", ",")
; 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
#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
#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
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Create a temporary dir
Local $sDirPath = @TempDir & "\TempDir"
DirRemove($sDirPath)
DirCreate($sDirPath)
; Create a NTFS link to the document dir
Local $sNTFSLink = $sDirPath & "\ExampleNTFSLinkToFolder"
Local $iNTFSLink = FileCreateNTFSLink(@MyDocumentsDir, $sNTFSLink)
; Display an explorer of whether the NTFS link was created.
Local $hWin = 0
If $iNTFSLink Then
ShellExecute($sDirPath)
$hWin = WinWaitActive("[CLASS:CabinetWClass]", "") ; Wait explorer window active
Else
MsgBox($MB_SYSTEMMODAL, "", "The NTFS link wasn't created." & @CRLF & "FileCreateNTFSLink returned: " & $iNTFSLink)
EndIf
If IsNTFSLink($sNTFSLink) Then
MsgBox($MB_SYSTEMMODAL, "", "The dirpath is a NTFSLink to a folder." & @CRLF & @CRLF & _
"You can click on it.")
Else
MsgBox($MB_SYSTEMMODAL, "", "The dirpath is not a NTFSLink to a folder.")
EndIf
; Delete the temporary dirs.
DirRemove($sNTFSLink)
DirRemove($sDirPath)
; close explorer windows
If $hWin Then WinKill($hWin, "")
EndFunc ;==>Example
; Check if the dirpath is a NTFSLink to a folder..
Func IsNTFSLink($sDirPath)
Return StringInStr(FileGetAttrib($sDirPath), "J") > 0
EndFunc ;==>IsNTFSLink