boost::filesystem::create_directory() mit Leerzeichen



  • Wie kann ich Ordner mit Leerzeichen erstellen? Wenn ich einfach folgendes mache:

    boost::filesystem::create_directory("bla bla");
    

    Wirft er eine Ausnahme -> Also ungültiger Ordnername. Ohne Leerzeichen klappt's. Aber es muss doch möglich sein ordner mit leerzeichen zu erstellen?

    mfg.



  • Ehm, er will ja einen Path haben. Den mußt du ihm als nativen-Path übergeben (kanns aber nicht ausprobieren):

    create_directory(path("bla bla", native));
    


  • Artchi schrieb:

    Ehm, er will ja einen Path haben. Den mußt du ihm als nativen-Path übergeben (kanns aber nicht ausprobieren):

    create_directory(path("bla bla", native));
    

    Cool danke! Das funktioniert!

    mfg.



  • Okay ich hab noch eine Frage: Wie kann ich Dateien kopieren die nicht im selben Verzeichnis sind und dann noch mit relativen Pfads? Beispiel:

    namespace fs = boost::filesystem;
    //...
    fs::copy_file(fs::path("../a.txt", fs::native), fs::path("b.txt", fs::native));
    

    Ich suche schon in der Doku, aber irgentwie steht da nur, dass es eigentlich gehen sollte. Hab auch schon das native weggelassen, aber hat alles nichts geholfen. Wie lässt sich das lösen?

    mfg.



  • Das kopieren in andere Verzeichnisse funktioniert, habe ich auch schon mal gemacht. Leider bin ich nicht zu Hause und kann es nicht ausprobieren. Aber probier es mal so rum:

    namespace fs = boost::filesystem;
    //...
    fs::path destination = current_path();
    destination /= "b.txt";
    
    fs::path source(current_path().branch_path());
    source /= "a.txt";
    
    fs::copy_file(source, destination);
    

    Naja, so in etwa... 😃 Kann sein, das man anstatt branch_path() auch sowas machen kann:

    fs::path source = current_path();
    source /= "../a.txt";
    

    Aber glaub ich nicht... einfach mal ausprobieren.



  • hmm.. Danke erstmal. Mein Problem ist jetzt, dass es mit dem branch_path() zwar klappt, dass ich die Orte der Dateien allerdings aus einer m3u-Datei auslese. Diese werden in einem String Array gespeichert. Und jetzt wäre es gut, wenn ich möglich einfach auf diese Pfade zu greifen könnte, z.B. einfach als Parameter übergeben, aber das geht ja leider nicht. Die sehen z.B. so aus:

    ..\..\Musik\Neues System\System Of A Down\Toxicity\System Of A Down - Toxicity - 01 - Prison Song.mp3
    

    mfg.


Anmelden zum Antworten