SetFileAttributesA-Funktion (fileapi.h)
Legt die Attribute für eine Datei oder ein Verzeichnis fest.
Verwenden Sie die SetFileAttributesTransacted--Funktion, um diesen Vorgang als transacted-Vorgang auszuführen.
Syntax
BOOL SetFileAttributesA(
[in] LPCSTR lpFileName,
[in] DWORD dwFileAttributes
);
Parameter
[in] lpFileName
Der Name der Datei, deren Attribute festgelegt werden sollen.
Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um diesen Grenzwert auf 32.767 breite Zeichen zu erweitern, stellen Sie "\\?\" dem Pfad voran. Weitere Informationen finden Sie unter Namensdateien, Pfade und Namespaces.
Trinkgeld
Ab Windows 10, Version 1607, können Sie sich anmelden, um die MAX_PATH Einschränkung zu entfernen, ohne "\\?\". Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbeschränkung" Benennungsdateien, Pfade und Namespaces.
[in] dwFileAttributes
Die für die Datei festzulegenden Dateiattribute.
Dieser Parameter kann ein oder mehrere Werte sein, kombiniert mit dem Bitweise-OR-Operator. Alle anderen Werte überschreiben jedoch FILE_ATTRIBUTE_NORMAL.
Nicht alle Attribute werden von dieser Funktion unterstützt. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Es folgt eine Liste der unterstützten Attributwerte.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
In der folgenden Tabelle wird beschrieben, wie Sie die Attribute festlegen, die nicht mit SetFileAttributesfestgelegt werden können. Eine vollständige Liste aller Dateiattributewerte und deren Beschreibungen finden Sie unter File Attribute Constants.
Attribut | Festlegen |
---|---|
FILE_ATTRIBUTE_COMPRESSED
0x800 |
Verwenden Sie zum Festlegen des Komprimierungszustands einer Datei die DeviceIoControl--Funktion mit dem FSCTL_SET_COMPRESSION Vorgang. |
FILE_ATTRIBUTE_DEVICE
0x40 |
Reserviert; nicht verwenden. |
FILE_ATTRIBUTE_DIRECTORY
0x10 |
Dateien können nicht in Verzeichnisse konvertiert werden. Verwenden Sie zum Erstellen eines Verzeichnisses die funktion CreateDirectory oder CreateDirectoryEx. |
FILE_ATTRIBUTE_ENCRYPTED
0x4000 |
Verwenden Sie zum Erstellen einer verschlüsselten Datei die CreateFile--Funktion mit dem attribut FILE_ATTRIBUTE_ENCRYPTED. Um eine vorhandene Datei in eine verschlüsselte Datei zu konvertieren, verwenden Sie die funktion EncryptFile. |
FILE_ATTRIBUTE_REPARSE_POINT
0x400 |
Um einen Analysepunkt einer Datei oder einem Verzeichnis zuzuordnen, verwenden Sie die DeviceIoControl--Funktion mit dem FSCTL_SET_REPARSE_POINT Vorgang. |
FILE_ATTRIBUTE_SPARSE_FILE
0x200 |
Verwenden Sie zum Festlegen des sparse-Attributs einer Datei die DeviceIoControl--Funktion mit dem FSCTL_SET_SPARSE-Vorgang. |
Transacted Operations
Wenn eine Datei zur Änderung in einer Transaktion geöffnet ist, kann kein anderer Thread die Datei zur Änderung öffnen, bis die Transaktion zugesichert wurde. Wenn also ein transacted Thread die Datei zuerst öffnet, erhalten alle nachfolgenden Threads, die versuchen, die Datei zu ändern, bevor die Transaktion zugesichert wird, eine Freigabeverletzung. Wenn ein Nicht-Transact-Thread die Datei vor dem Transaktionsthread ändert und die Datei weiterhin geöffnet ist, wenn die Transaktion versucht, sie zu öffnen, erhält die Transaktion den Fehler ERROR_TRANSACTIONAL_CONFLICT.In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Abgestützt |
---|---|
Server Message Block (SMB) 3.0-Protokoll | Ja |
SMB 3.0 Transparent Failover (TFO) | Ja |
SMB 3.0 mit Skalierungsdateifreigaben (SO) | Ja |
Freigegebenes Clustervolumedateisystem (CsvFS) | Ja |
Resilient File System (ReFS) | Ja |
Beispiele
Ein Beispiel finden Sie unter Abrufen und Ändern von Dateiattributen.
Anmerkung
Der Fileapi.h-Header definiert SetFileAttributes 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 Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | fileapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |