C ++ erhält das Verzeichnispräfix

8

Zum Beispiel habe ich die Zeichenfolge "root/data/home/file1.txt" Ich möchte "root/data/home" erhalten Gibt es eine bequeme Funktion in C ++, die mir dies erlaubt oder sollte ich es selbst programmieren?

    
Mark 12.06.2011, 01:44
quelle

4 Antworten

15

Sie können grundlegende Stringmanipulation durchführen, d. h.

%Vor%

oder nehmen Sie eine dritte Option wie Boost.Filesystem :

%Vor%     
Luc Danton 12.06.2011, 01:50
quelle
2

Wenn Sie ein POSIX-System verwenden, versuchen Sie dirname (3) .

    
John Zwinck 12.06.2011 01:49
quelle
2

Es gibt sicherlich keine bequeme Funktion in der Sprache selbst. Die String-Bibliothek bietet find_last_of , was gut funktionieren sollte.

    
Charlie Martin 12.06.2011 01:49
quelle
0

Dies ist eher plattformabhängig. Beispielsweise verwendet Windows '\' für ein Pfadtrennzeichen (meistens), Unix verwendet '/' und MacOS (vor OSX) verwendet ':' .

Die Windows-spezifische API ist PathRemoveFileSpec .

    
Ben Voigt 12.06.2011 01:56
quelle

Tags und Links