Freigeben über


RemoveDirectory2W-Funktion (fileapi.h)

Löscht ein vorhandenes leeres Verzeichnis. Diese Funktion schlägt fehl, wenn ein Teil von lpPathName über einen Analysepunkt oder eine symbolische Verknüpfung umgeleitet wird.

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

Syntax

BOOL RemoveDirectory2W(
  LPCWSTR         lpPathName,
  DIRECTORY_FLAGS DirectoryFlags
);

Die Parameter

lpPathName

Der Pfad des zu entfernenden Verzeichnisses. Dieser Pfad muss ein leeres Verzeichnis angeben, und der Aufrufvorgang muss zugriff auf das Verzeichnis haben.

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 Benennen von Dateien, Pfaden und Namespaces.

Tipp

Sie können sich anmelden, um die MAX_PATH Einschränkung zu entfernen , ohne "\\?\" vorauszustehen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbeschränkung" der Benennungsdateien, Pfade und Namespaces .

DirectoryFlags

Flags, die angeben, wie das Verzeichnis gelöscht werden soll. Dieser Parameter kann eine Kombination aus den folgenden Werte sein:

Wert Bedeutung
DIRECTORY_FLAGS_DISALLOW_PATH_REDIRECTS
0x00000001
Verhindern, dass lpPathName durch Analysepunkte oder symbolische Verknüpfungen umgeleitet wird.

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

Die RemoveDirectory2-Funktion markiert ein Verzeichnis zum Löschen beim Schließen. Daher wird das Verzeichnis erst entfernt, wenn das letzte Handle für das Verzeichnis geschlossen wird.

Verwenden Sie die SHFileOperation-Funktion , um die Dateien in einem Verzeichnis rekursiv zu löschen.

RemoveDirectory2 kann verwendet werden, um eine Verzeichnisverbindung zu entfernen. Da das Zielverzeichnis und seine Inhalte über den kanonischen Pfad zugänglich bleiben, ist das Zielverzeichnis selbst nicht betroffen, indem eine Verbindung entfernt wird, die darauf abzielt. Wenn lpPathName auf eine Verzeichnisverbindung verweist, entfernt RemoveDirectory2 den angegebenen Link unabhängig davon, ob das Zielverzeichnis leer ist oder nicht. Weitere Informationen zu Kreuzungen finden Sie unter "Hard Links and Junctions".

Die Verwendung des POSIX-Löschvorgangs bewirkt, dass das Verzeichnis gelöscht wird, während Handles geöffnet bleiben. Nachfolgende Aufrufe von CreateDirectory oder CreateDirectory2 zum Öffnen des Verzeichnisses schlagen mit ERROR_FILE_NOT_FOUND fehl.

Diese Funktion wird 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 Skalierungsdateifreigaben (SO) Ja
Freigegebenes Clustervolumedateisystem (CsvFS) Ja
Resilient File System (ReFS) Ja

Hinweis

Der fileapi.h Header definiert RemoveDirectory2 als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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
Unterstützter Client (Mindestversion) Windows 11 24H2 [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2025 [Desktop-Apps | UWP-Apps]
Kopfzeile fileapi.h (include Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CreateDirectory2

Erstellen und Löschen von Verzeichnissen

Verzeichnisverwaltungsfunktionen

RemoveDirectoryTransacted