Получение части QString

Как я могу получить ценность "Recording.mp3" из этого QString

C:/Users/Admin/AppData/Local/Temp/AudelloTemp/Recording.mp3

Если я использую lastIndexof('/') функция затем ищет в обратном направлении для последнего появления

Если я использую indexof('/') функция, то он ищет вперед для первого появления.

У меня нет никакого способа получить это.

Или это единственный способ использовать цикл для получения этого значения?

2

Решение

Видя, что это путь к файлу, и вы ищете имя файла, правильный подход будет следующим:

// When you have this:
QString s("C:/Users/Admin/AppData/Local/Temp/AudelloTemp/Recording.mp3");

// Do this:

QFileInfo f(s);
QString s1 = f.fileName();
// now s1 is "Recording.mp3"

Тем не менее, чтобы ответить на ваш вопрос в QString функция-член для использования будет lastIndexOf(), Вы неправильно прочитали документацию: он не «ищет в обратном порядке последнее вхождение», он «ищет последнее вхождение в строке, выполняя поиск в обратном направлении». Так что в вашем случае это действительно вернет / отделяющий AudelloTemp от Recording.mp3,

7

Другие решения

Как насчет:

QString filename_only(const QString& path)
{
int index = path.lastIndexOf('/'); // check validity
return path.right(path.size() - index); // Might be off by one, feel free to fix
}

У меня сейчас нет Qt, так что, пожалуйста, проверьте, не включен ли я.

-1

По вопросам рекламы [email protected]