Pfad extrahieren ...
-
Hallo,
gibt es in C++ eine Funktion bzw. eine einfache Möglichkeit, aus einem Strnig, der Pfad und Dateiname enthält ("C:\abc\xyz\123.txt"), den Pfad (und damit auch den Dateinamen) zu extrahieren?
Habt vielen Dank
-
ja gibt es, nennt sich z.b.: getline
forensuche
-
Versuchs mal lieber mit rfind und substr!
-
#include <iostream> #include <string> int main() { std::string s = "c:\\foo\\bar\\baz.qux"; std::cout << s.substr(0, s.rfind('\\')) << std::endl; }
-
enno-tyrant schrieb:
ja gibt es, nennt sich z.b.: getline
forensuche
getline find ich persönlich nicht so doll
ein weiterer tipp wäre boost::filesystem::path, der aknn dir noch viel mehr infos geben falls du sie brauchst.
-
nunja, die methode
s.substr(0, s.rfind('\\'))
kannte ich bisher noch nicht. hatte es immer in etwa dieser gelöst:
string str="c:\\foo\\bar\\baz.qux" getline(str,pfad); stringstream NEUERPFAD(pfad); getline(NEUERPFAD,pfadteil_1,'\\'); getline(NEUERPFAD,pfadteil_2,'\\'); getline(NEUERPFAD,pfadteil_3,'\n'); cout << pfadteil_1 << pfadteil_2 << pfadteil_3 << endl;
(gebe jetzt keine garantie obs wirklich klappt, is ausm stehgreif geschrieben)
-
und wenn der pfad mal länger ist?
-
ja, genau da liegt das problem