RemoveDirectoryA-Funktion (fileapi.h)
Hiermit wird ein vorhandenes leeres Verzeichnis gelöscht.
Um diesen Vorgang als transaktionierten Vorgang auszuführen, verwenden Sie die RemoveDirectoryTransacted-Funktion .
Syntax
BOOL RemoveDirectoryA(
[in] LPCSTR lpPathName
);
Parameter
[in] lpPathName
Der Pfad des zu entfernenden Verzeichnisses. Dieser Pfad muss ein leeres Verzeichnis angeben, und der aufrufende Prozess muss über Löschzugriff auf das Verzeichnis verfügen.
Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um diesen Grenzwert auf 32.767 Breitzeichen zu erweitern, stellen Sie dem Pfad "\\?\" voran. 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 aufheben, ohne "\\?\" vorab ausstehen zu müssen. Ausführliche Informationen finden Sie im Abschnitt "Maximale Längenbeschränkung für Pfade" unter Benennen von Dateien, Pfaden und Namespaces .
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Die RemoveDirectory-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 wurde.
Verwenden Sie die ShFileOperation-Funktion , um die Dateien in einem Verzeichnis rekursiv zu löschen.
RemoveDirectory 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, wenn eine Verbindung entfernt wird, die darauf abzielt. Wenn lpPathName auf eine Verzeichnisverbindung verweist, entfernt RemoveDirectory den angegebenen Link, unabhängig davon, ob das Zielverzeichnis leer ist oder nicht. Weitere Informationen zu Verbindungen finden Sie unter Feste Links und Verbindungen.
Die Verwendung von POSIX delete bewirkt, dass das Verzeichnis gelöscht wird, während Handles geöffnet bleiben. Nachfolgende Aufrufe von CreateDirectory zum Öffnen des Verzeichnisses schlagen mit ERROR_FILE_NOT_FOUND fehl.
In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt:
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | Ja |
SMB 3.0 Transparent Failover (TFO) | Ja |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | Ja |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Robustes Dateisystem (Resilient File System, ReFS) | Ja |
Hinweis
Der Fileapi.h-Header definiert RemoveDirectory 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 |
---|---|
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
Erstellen und Löschen von Verzeichnissen