Freigeben über


CreateDirectory-Funktion (winbase.h)

Erstellt ein neues Verzeichnis. Wenn das zugrunde liegende Dateisystem die Sicherheit für Dateien und Verzeichnisse unterstützt, wendet die Funktion einen angegebenen Sicherheitsdeskriptor auf das neue Verzeichnis an.

Verwenden Sie zum Angeben eines Vorlagenverzeichnisses die CreateDirectoryEx--Funktion.

Verwenden Sie die CreateDirectoryTransacted-Funktion, um diesen Vorgang als transacted-Vorgang auszuführen.

Syntax

BOOL CreateDirectory(
  [in]           LPCTSTR               lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Parameter

[in] lpPathName

Der Pfad des zu erstellenden Verzeichnisses.

Für die ANSI-Version dieser Funktion gibt es ein Standardgrenzwert für Zeichenfolgengrößen für Pfade von 248 Zeichen (MAX_PATH - ausreichend Platz für einen Dateinamen von 8.3). Um diesen Grenzwert auf 32.767 breite Zeichen zu erweitern, rufen Sie die Unicode-Version der Funktion auf und stellen "\?" dem Pfad voran. Weitere Informationen finden Sie unter Benennen einer Datei

Tipp Ab Windows 10, Version 1607, für die Unicode-Version dieser Funktion (CreateDirectoryW), können Sie sich anmelden, um die Einschränkung von 248 Zeichen zu entfernen, ohne "\\?\". Die Beschränkung von 255 Zeichen pro Pfadsegment gilt weiterhin. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbeschränkung" Benennungsdateien, Pfade und Namespaces.
 

[in, optional] lpSecurityAttributes

Ein Zeiger auf eine SECURITY_ATTRIBUTES Struktur. Der lpSecurityDescriptor Mitglied der Struktur gibt einen Sicherheitsdeskriptor für das neue Verzeichnis an. Wenn lpSecurityAttributesNULL-ist, erhält das Verzeichnis einen Standardsicherheitsdeskriptor. Die ACLs im Standardsicherheitsdeskriptor für ein Verzeichnis werden vom übergeordneten Verzeichnis geerbt.

Das Zieldateisystem muss die Sicherheit für Dateien und Verzeichnisse unterstützen, damit dieser Parameter wirksam wird. (Dies wird angegeben, wenn GetVolumeInformation-FS_PERSISTENT_ACLSzurückgibt.)

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. Mögliche Fehler sind:

Rückgabecode Beschreibung
ERROR_ALREADY_EXISTS
Das angegebene Verzeichnis ist bereits vorhanden.
ERROR_PATH_NOT_FOUND
Mindestens ein Zwischenverzeichnis ist nicht vorhanden; Diese Funktion erstellt nur das endgültige Verzeichnis im Pfad.

Bemerkungen

Einige Dateisysteme, z. B. das NTFS-Dateisystem, unterstützen die Komprimierung oder Verschlüsselung für einzelne Dateien und Verzeichnisse. Bei Volumes, die für ein solches Dateisystem formatiert sind, erbt ein neues Verzeichnis die Komprimierungs- und Verschlüsselungsattribute des übergeordneten Verzeichnisses.

Eine Anwendung kann ein Handle für ein Verzeichnis abrufen, indem CreateFile- mit dem FILE_FLAG_BACKUP_SEMANTICS Flagsatz aufgerufen wird. Ein Codebeispiel finden Sie unter CreateFile-.

Um Vererbungsfunktionen zu unterstützen, die den Sicherheitsdeskriptor dieses Objekts abfragen, kann heuristisch bestimmen und melden, dass die Vererbung wirksam ist. Weitere Informationen finden Sie unter automatische Verteilung von vererbbaren ACEs.

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.

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- winbase.h (enthalten Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

CreateDirectoryEx-

CreateDirectoryTransacted-

CreateFile-

Erstellen und Löschen von Verzeichnissen

Verzeichnisverwaltungsfunktionen

RemoveDirectory-

SECURITY_ATTRIBUTES

SECURITY_INFORMATION