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.


Anmelden zum Antworten