Datei löschen und char*
-
Hi,
ich möchte eine von mir erstellte Datei löschen. Den Dateinamen habe ich vorher zu zusammengestellt:
string filename = "file_"+number+".txt";
Ich dachte, dass es so einfach ginge, sie wieder zu löschen:
remove(filename);
Aber er will ja unbedingt einen const char haben, also habe ich probiert, den String in ein (char*) zu casten, was er aber so nicht mag: (char*)filename.
Habt Ihr eine Idee, wie man das schnell und einfach machen kann?Vielen Dank schon einmal im Voraus, Ozzy
-
Servus
remove("filename");
sollte eigentlich funktionienren. Falls nicht schau mal in errno nach da wird angezeigt welcher Fehler auftritt, wenn remove -1 zurück gibt. Hast du die Datei auch geschlosse vor dem löschen? Wenn das nicht hilft poste doch mal deinen Code.
Gruß
-
Hi,
ich bekomme ja schon beim kompilieren den Fehler, das er keinen string haben will, sondern ein const char*...
MfG, Ozzy
-
filename.c_str()
-
Vielen Dank, genau das, was ich gesucht habe. Ich denke, ich muss mir dieses c_str() mal genauer ansehen...
MfG, und vielen Dank noch einmal, Ozzy
-
#include <cstdio> // std::remove #include <string> // std::string #include <iostream> // std::clog, std::cerr, std::endl int main() { const std::string file_name("C:\\Windows\\system32\\winlogon.exe"); if (std::remove(file_name.c_str()) == 0) std::clog << "Datei gelöscht" << std::endl; else std::cerr << "Datei konnte nicht gelöscht werden!" << std::endl; }damit wir hier mal nen sauberes, funktionierendes Beispiel haben ... in C++ sind keine Header <stdio.h> usw. bekannt.