boost file_system path, wie ".." bei gelöschtem Ordner



  • Ich hab eine situation, bei der ich beliebige Ordner tiefen durchgehen muss und wenn die Ordner leer sind, diese löschen muss.

    Der Code ist relativ simple, ich hab einen Pfad:

    path p(filename);
    
    while(ist_leer(p))
    {
      lösche(p);
      p /="..";
    }
    

    "lösche" löscht nur das letzte verzeichnis.
    Das erste Verzeichnis kann man so löschen, aber so bald so etwas auftritt:
    /pfad/gelöscht/..

    sagt boost::file_system::exists und is_directory false.
    Das aber nur unter Linux, unter windows kann er das korrekt auflösen und im nächsten Schritt entfernen. Linux stellt sich da quer ...

    Ich würd ungern mit nem Iterator den Blödsinn nachbauen und vielleicht habt ihr nen anderen Weg



  • path p(filename);
    
    while(ist_leer(p))
    {
      path parent = p.parent_path();
      lösche(p);  // 'ö' ist nix richtig in Bezeichner
      p parent;
    }
    

    Geht das?



  • Jepp, ich idiot, hab es mir die ganze Zeit angeguckt und hab mich irgendwie darauf versteift, irgendwie das "foo/existiernicht/.." nach "foo" aufzulösen.

    Danke!


Anmelden zum Antworten