Freigeben über


GetFileAttributesA-Funktion (fileapi.h)

Ruft Dateisystemattribute für eine angegebene Datei oder ein angegebenes Verzeichnis ab.

Verwenden Sie die GetFileAttributesEx-Funktion , um weitere Attributinformationen abzurufen.

Verwenden Sie zum Ausführen dieses Vorgangs als transaktionierten Vorgang die GetFileAttributesTransacted-Funktion .

Syntax

DWORD GetFileAttributesA(
  [in] LPCSTR lpFileName
);

Parameter

[in] lpFileName

Der Name der Datei oder des Verzeichnisses.

Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. Weitere Informationen finden Sie unter Benennen von Dateien, Pfaden und Namespaces.

Tipp

Ab Windows 10 Version 1607 können Sie die MAX_PATH-Einschränkung entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .

Rückgabewert

Wenn die Funktion erfolgreich ist, enthält der Rückgabewert die Attribute der angegebenen Datei oder des angegebenen Verzeichnisses. Eine Liste der Attributwerte und deren Beschreibungen finden Sie unter Dateiattributekonstanten.

Wenn die Funktion fehlschlägt, wird der Rückgabewert INVALID_FILE_ATTRIBUTES. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Bemerkungen

Wenn GetFileAttributes für ein Verzeichnis aufgerufen wird, bei dem es sich um einen eingebundenen Ordner handelt, gibt es die Dateisystemattribute des Verzeichnisses zurück, nicht die attribute des Stammverzeichnisses auf dem Volume, das der eingebundene Ordner dem Verzeichnis ordnet. Um die Dateiattribute des zugeordneten Volumes abzurufen, rufen Sie GetVolumeNameForVolumeMountPoint auf, um den Namen des zugeordneten Volumes abzurufen. Verwenden Sie dann den resultierenden Namen in einem Aufruf von GetFileAttributes. Die Ergebnisse sind die Attribute des Stammverzeichnisses auf dem zugeordneten Volume.

Wenn Sie GetFileAttributes für eine Netzwerkfreigabe aufrufen, schlägt die Funktion fehl, und GetLastError gibt ERROR_BAD_NETPATH zurück. Sie müssen einen Pfad zu einem Unterordner für diese Freigabe angeben.

In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
Server Message Block (SMB) 3.0-Protokoll Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Horizontalskalieren von Dateifreigaben (SO) Ja
Freigegebenes Clustervolume-Dateisystem (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja
 

Verhalten symbolischer Verknüpfungen: Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Attribute für den symbolischen Link zurück.

Transaktionen

Wenn eine Datei zur Änderung in einer Transaktion geöffnet ist, kann kein anderer Thread die Datei zur Änderung öffnen, bis das Commit für die Transaktion erfolgt. Wenn also ein Transaktionsthread zuerst die Datei öffnet, erhalten alle nachfolgenden Threads, die versuchen, die Datei zu ändern, bevor die Transaktion committet wird, eine Freigabeverletzung. Wenn ein nicht abgewickelter Thread die Datei vor dem Transaktionsthread ändert und die Datei weiterhin geöffnet ist, wenn die Transaktion versucht, sie zu öffnen, empfängt die Transaktion den Fehler ERROR_TRANSACTIONAL_CONFLICT.

Beispiele

Ein Beispiel finden Sie unter Abrufen und Ändern von Dateiattributen.

Hinweis

Der fileapi.h-Header definiert GetFileAttributes als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile fileapi.h (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Deviceiocontrol

Dateiattributekonstanten

Dateiverwaltungsfunktionen

FindFirstFile

FindNextFile

GetFileAttributesEx

GetFileAttributesTransacted

SetFileAttributes

Symbolische Links