2010-09-06 33 views

Odpowiedz

81

Użyj QFileInfo rozebrać na ścieżkę (jeśli występują):

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

+1. Nieco bardziej zwięzły niż mój :-) – paxdiablo

+2

Tak, Qt ma sztuczki ukryte w każdym miejscu. Nadal je odkrywam :) –

+14

Możesz to uczynić jeszcze krótszym, podając QFile jako parametr konstruktora QFileInfo: 'QFileInfo fileInfo (f);' –

12

Jedno podejście, niekoniecznie najlepsze: z QFile, można uzyskać specyfikację plików z QFile::fileName():

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

następnie można po prostu użyć funkcji ciągów jak QString::split:

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

Sekcja QString jest bardziej dostępna: –

+6

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

+0

@Kamil, powinieneś zostawić to jako odpowiedź, a nie komentarz, wtedy go przegłosuję :-) – paxdiablo

5

tylko dodatkowo: aby oddzielić nazwę pliku i ścieżkę pliku mającego QFile f

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

nie trzeba utworzyć dodatkową Fileinfo.

Powiązane problemy