2010-09-06 8 views

Antwort

81

Verwenden Sie einen QFileInfo, um den Pfad Streifen aus (falls vorhanden):

QFileInfo fileInfo(f.fileName()); 
QString filename(fileInfo.fileName()); 
+3

+1. Ein bisschen prägnanter als meins :-) – paxdiablo

+2

Ja, Qt hat Tricks überall versteckt. Ich entdecke sie immer noch :) –

+14

Sie können dies noch kürzer machen, indem Sie QFile als Parameter für den QFileInfo-Konstruktor angeben: 'QFileInfo fileInfo (f);' –

12

Ein Ansatz, die nicht unbedingt das Beste: von einem QFile, können Sie die Dateispezifikation mit QFile::fileName() erhalten:

QFile f("/home/umanga/Desktop/image.jpg"); 
QString str = f.fileName(); 

dann können Sie nur die Zeichenfolge Features wie QString::split verwenden:

QStringList parts = str.split("/"); 
QString lastBit = parts.at(parts.size()-1); 
+0

QString Abschnitt ist eher situierbar: –

+6

QString lastBit = str.section ("/", -1, -1); –

+0

@Kamil, Sie sollten das als Antwort lieber als einen Kommentar, dann werde ich es upvote :-) – paxdiablo

5

nur zusätzlich: Dateiname und Dateipfad zu trennen QFile f

QString path = f.fileName(); 
QString file = path.section("/",-1,-1); 
QString dir = path.section("/",0,-2); 

Sie eine zusätzliche fileinfo zu erstellen brauchen nicht mit.

Verwandte Themen