2012-05-11 2 views
0

Как я могу получить аналогичную функциональность с усилениемнайти последнее вхождение с помощью наддува строки

int idx = md.filepath.lastIndexOf('/');         
     md.title = md.filepath.right(md.filepath.length() - idx -1);    
     md.title = md.title.left(md.title.length() - 4);  

Над код (QT основы) находит имя файла без расширения, мкр является объект, путь_к_файл, название является QString. Я просматривал строковые методы boost, такие как find_last, но он возвращает iterator_range. Я новичок, чтобы увеличить, спасибо заранее.

ответ

3

Если все, что вы хотите сделать, это синтаксический анализ имен файлов, вам будет лучше использовать класс boost::filesystem::path. В частности, следующие методы:

path filename() const;

path stem() const; и

path extension() const;

Класс обеспечивает переходы к и от std::string и std::wstring.

+0

спасибо, что ответили. Я искал способ получить имя файла без его расширения. например Filepath: /home/user/file.ext. Я просто хочу 'file' not 'file.ext' –

+1

Это то, что предоставляет функция 'stem'. – Nick

+0

спасибо! :) –