C++

Dateien löschen mit der C++17-filesystem-Bibliothek

Um eine Datei (zum Beispiel test.txt) in C++ zu löschen benutze remove aus der C++17-filesystem-Bibliothek:

remove("test.txt");

Vollständiges Beispiel:

#include <experimental/filesystem>
using namespace std::experimental::filesystem;

int main() {
    remove("test.txt");
}

Mit GCC musst du die Datei wie Folgt kompilieren:

g++ -o delete-cpp17 delete-cpp17.cpp -lstdc++fs

Die stdc++fs-Bibliothek muss gelinkt werden, um die Funktionen aus der C++17-Filesystem-Bibliothek einzubinden.

remove löscht Verzeichnisse nicht rekursiv, also können nur leere Verzeichnisse gelöscht werden! Benutze für das Löschen eines Verzeichnisses inklusive aller Unterverzeichnisse und darin enthaltenen Dateienremove_all oder lies unseren Post dazu: Dateien und Ordner rekursiv löschen mit der C++17-filesystem-Bibliothek

Posted by Uli Köhler in C++

Dateien und Ordner rekursiv löschen mit der C++17-filesystem-Bibliothek

Um mit der C++17-filesystem-Bibliothek ein Verzeichnis rekursiv zu löschen (zum Beispiel mein-verzeichnis), benutze remove_all:

remove_all("mein-verzeichnis");

Diese Zeile löscht mein-verzeichnis und alle darin enthaltenen Unterverzeichnisse und Dateien (= rekursiv).

Vollständiges Beispiel:

#include <experimental/filesystem>
using namespace std::experimental::filesystem;

int main() {
    remove_all("mein-verzeichnis");
}

Mit GCC musst du die Datei wie Folgt kompilieren:

g++ -o delete-cpp17 delete-cpp17.cpp -lstdc++fs

Die stdc++fs-Bibliothek muss gelinkt werden, um die Funktionen aus der C++17-Filesystem-Bibliothek einzubinden.

Falls du stattdessen nur ein leeres Verzeichnis oder eine einzelne Datei löschen möchtest (ohne Unterverzeichnisse), benutze remove anstatt remove_all oder lies unseren Post dazu: Dateien löschen mit der C++17-filesystem-Bibliothek

Posted by Uli Köhler in C++