Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_REDIRECTS0x00000001 |
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
Erstellen und Löschen von Verzeichnissen