std::experimental::filesystem::remove, std::experimental::filesystem::remove_all
Von cppreference.com
< cpp | experimental | fs
| Definiert im Header <experimental/filesystem> |
||
| bool remove( const path& p ); bool remove( const path& p, error_code& ec ); |
(1) | (Dateisystem-TS) |
| std::uintmax_t remove_all( const path& p ); std::uintmax_t remove_all( const path& p, error_code& ec ); |
(2) | (Dateisystem-TS) |
1) Die Datei oder das leere Verzeichnis, das durch den Pfad p identifiziert wird, wird gelöscht, als ob durch das POSIX remove. Symlinks werden nicht verfolgt (Symlink wird entfernt, nicht sein Ziel).
2) Löscht den Inhalt von p (falls es sich um ein Verzeichnis handelt) und den Inhalt aller seiner Unterverzeichnisse rekursiv, dann löscht p selbst, als ob durch wiederholtes Anwenden des POSIX remove. Symlinks werden nicht verfolgt (Symlink wird entfernt, nicht sein Ziel).
Inhalt |
[edit] Parameter
| p | - | zu löschender Pfad |
| ec | - | Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung |
[edit] Rückgabewert
1) true, wenn die Datei gelöscht wurde, false, wenn sie nicht existierte. Die Überladung, die ein error_code& Argument nimmt, gibt bei Fehlern false zurück.
2) Gibt die Anzahl der gelöschten Dateien und Verzeichnisse zurück (kann null sein, wenn p von vornherein nicht existierte). Die Überladung, die ein error_code& Argument nimmt, gibt bei einem Fehler static_cast<std::uintmax_t>(-1) zurück.
[edit] Ausnahmen
Die Überladung, die keinen error_code& Parameter annimmt, löst filesystem_error bei zugrunde liegenden OS-API-Fehlern aus, konstruiert mit p als erstes Argument und dem OS-Fehlercode als Fehlercode-Argument. std::bad_alloc kann ausgelöst werden, wenn die Speicherzuweisung fehlschlägt. Die Überladung, die ein error_code& Argument annimmt, setzt dieses auf den OS-API-Fehlercode, wenn ein OS-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten. Diese Überladung hatnoexcept-Spezifikation:
noexcept
[edit] Hinweise
Auf POSIX-Systemen ruft diese Funktion normalerweise bei Bedarf unlink und rmdir auf, unter Windows RemoveDirectoryW und DeleteFileW.
[edit] Beispiel
Führen Sie diesen Code aus
#include <cstdint> #include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path dir = fs::temp_directory_path(); fs::create_directories(dir / "abcdef/example"); std::uintmax_t n = fs::remove_all(dir / "abcdef"); std::cout << "Deleted " << n << " files or directories\n"; }
Mögliche Ausgabe
Deleted 2 files or directories
[edit] Siehe auch
| löscht eine Datei (function) |