Форум программистов, компьютерный форум CyberForum.ru

Выделяление только имя файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
KostyaKulakov
Заблокирован
05.09.2012, 19:13     Выделяление только имя файла #1
Написать программу, которая по введённому полному пути к файлу выделяла бы
только имя файла (то, что следует после последнего слеша или обратного слеша).
Например, ввод:
E:\video\100_Greatest_Discoveries\09_fizika.avi
вывод:
09_fizika.avi
Использовать класс std::string

думал думал так и не додумал у кого есть какие варианты?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 19:13     Выделяление только имя файла
Посмотрите здесь:

C++ как сделать так чтобы была возможность записывать и фамилию и имя,а то у меня только до пробела читает?
Записать в третий файл только те пары чисел, в которых число из первого файла меньше соответствующего числа из второго файла. C++
C++ Из полного пути к файлу выделить только имя файла
программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы C++
Прочитать имя файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OVERWAVE
0 / 1 / 0
Регистрация: 02.08.2012
Сообщений: 45
05.09.2012, 19:18     Выделяление только имя файла #2
C++
1
2
3
4
5
6
private: String^ castro(String^ text)
        {
            text = text->Remove(0, text->LastIndexOf("\\") + 1);
            text = text->Remove(text->Length - 4, 4);
            return text;
        }
Моя функция, только учти, что там обрубаются последние 4 символа, то есть где расширение не 3 символа, надо ещё сделать обрубание по точке.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
05.09.2012, 19:40     Выделяление только имя файла #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
#include <exception>
 
std::string fileName(const std::string& path)
{
    std::size_t slashPos, backSlashPos = std::string::npos;
    slashPos = path.rfind('\\');
    backSlashPos = path.rfind('/');
    if ((slashPos != std::string::npos && backSlashPos == std::string::npos) 
        || slashPos > backSlashPos)
        return path.substr(slashPos + 1, path.size() - slashPos - 1);
    if (backSlashPos != std::string::npos)
        return path.substr(backSlashPos + 1, path.size() - backSlashPos - 1);
    throw std::exception("is not path to file");
}
 
int main()
{
    std::string path = "E:\\video\\100_Greatest_Discoveries\\09_fizika.avi";
    std::cout << fileName(path) << std::endl;
    system("pause");
    return 0;
}
Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
#include <boost/filesystem/path.hpp>
 
int main()
{
    // :D
    boost::filesystem::path path("/home/porno/09_fizika.avi");
    std::cout << path.filename();
}
test
easybudda
06.09.2012, 15:58     Выделяление только имя файла
  #4
 Комментарий модератора 
Закрыто. Продолжение: Из полного пути к файлу выделить только имя файла
Yandex
Объявления
06.09.2012, 15:58     Выделяление только имя файла
Закрытая тема Создать тему
Опции темы

Текущее время: 03:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru