2010-09-06 3 views

ответ

81

Используйте QFileInfo раздеть путь (если таковые имеются):

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

+1. Немного более кратким, чем у меня :-) – paxdiablo

+2

Да, у Qt есть трюки, скрытые повсюду. Я все еще их обнаруживаю :) –

+14

Вы можете сделать это еще короче, предоставив QFile в качестве параметра конструктору QFileInfo: 'QFileInfo fileInfo (f);' – 2010-09-06 04:44:04

12

Один подход, не обязательно лучше: от QFile, вы можете получить спецификацию файла с QFile::fileName():

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

, то вы можете просто использовать функции строки как QString::split:

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

Раздел QString более ситуативный: –

+6

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

+0

@Kamil, вы должны оставить это как ответ, а не комментарий, тогда я его выберу :-) – paxdiablo

5

только в дополнение: для того чтобы отделить имя файла и путь к файлу, имеющий QFile f

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

вам не нужно, чтобы создать дополнительный FILEINFO.

Смежные вопросы