Anhängen an boost :: filesystem :: path
Habe ich eine gewisse boost::filesystem::path
in der hand und ich möchte anfügen eine Zeichenfolge (oder den Pfad).
boost::filesystem::path p("c:\\dir");
p.append(".foo"); //should result in p pointing to c:\dir.foo
Nur überlastung boost::filesystem::path
hat der append
will zwei InputIterator
s.
Meine Lösung bisher ist Folgendes zu tun:
boost::filesystem::path p2(std::string(p.string()).append(".foo"));
Bin ich etwas fehlt?
InformationsquelleAutor der Frage Zack | 2010-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Getestet mit 1.37, aber Blatt und remove_leaf sind auch dokumentiert in 1.35. Sie brauchen, um zu testen, ob die Letzte Komponente p ist ein mit dem Namen der ersten, wenn es vielleicht nicht sein.
InformationsquelleAutor der Antwort
Wenn es wirklich nur um den Namen der Datei-Endung die Sie ändern möchten, dann sind Sie wahrscheinlich besser dran, zu schreiben:
für die meisten anderen Datei-Pfad-Vorgänge Sie können mit den Operatoren
/=
und/
so dass zum verketten von teilen eines namens. Zum Beispielbeziehen sich auf
c:\dir\subdir
.InformationsquelleAutor der Antwort hkaiser
Mit Version 3 der Dateisystem-Bibliothek (Boost-1.55.0) es ist so einfach wie nur
was in
p = "one_path_and_another_one"
.InformationsquelleAutor der Antwort martemiev
InformationsquelleAutor der Antwort leon le bourdon
Können Sie festlegen
+
Betreiber selbst, so dass Sie können fügen Sie zweiboost::filesystem::path
Variablen.Dann können Sie sogar noch ein
std::string
Variablen (implizite Konvertierung). Dies ist ähnlich zu der definition deroperator/
ausinclude/boost/filesystem/path.hpp:
Hier ist ein funktionierendes Beispiel:
main.cpp:
zusammengestellt
erzeugt die Ausgabe:
InformationsquelleAutor der Antwort phinz