Получить файл с расширением

Обновлено: 04.07.2024

В этой статье мы обсудим различные способы извлечения расширения из заданной строки пути с использованием другой техники, т. е.

  • Библиотека файловой системы C++17
  • Увеличить библиотеку файловой системы
  • С++ STL

Предположим, что данный файл,

Это расширение должно быть .out.

Получить расширение заданного файла с помощью Boost Filesystem Library и C++17

И библиотека файловой системы boost, и файловая система C++17 предоставляют 2 функции-члена для класса пути в разных пространствах имен, например std::experimental::filesystem для C++17 и boost::filesystem для библиотеки файловой системы Boost.

путь path::extension() const;

Он возвращает объект пути, указывающий на компонент расширения данного объекта пути. Если файл не имеет расширения, он вернет пустой объект пути.

bool path::has_extension() const;

Возвращает true, если данный файл в объекте пути имеет расширение.

Используйте их, чтобы получить расширение данного файла.

Он вернет пустую строку, если данный файл не имеет расширения.

В случае c++17 используйте этот заголовочный файл и пространство имен,

В случае библиотеки Boost используйте этот заголовочный файл и пространство имен,

Полный пример повышения,

Чтобы скомпилировать приведенный выше пример с помощью Boost, используйте следующую команду

Чтобы скомпилировать приведенный выше пример с помощью C++17, используйте следующую команду:

Выбрать расширение заданного файла с помощью функций std::string

Шаги для поиска расширения в заданной строке пути,

  • Поиск последнего вхождения символа «.».
  • Если существует, вернуть подстроку от вхождения ‘.’ до последнего символа.
  • Иначе вернуть пустую строку.

Полный пример выглядит следующим образом

Хотите лучше изучить современный C++?

Мы составили список лучших курсов C++, которые научат вас передовому современному C++ с самого начала до продвинутого уровня. Он также познакомит вас со словом Smart Pointers, семантикой перемещения, значением R, лямбда-функцией, авто, шаблоном Variadic, циклами на основе диапазона, многопоточностью и многими другими новейшими функциями C++, т.е. от C++11 до C++. 20.

Ознакомьтесь с подробными обзорами лучших современных курсов C++

Помните, что C++ требует большого терпения, настойчивости и практики. Итак, начните учиться сегодня.

Похожие записи

Проверить, является ли строка пустой в C++

C++: преобразование множества в вектор

Вектор C++: печать всех элементов — (6 способов)

C++11 / C++14: ключевое слово «удалить» и удаленные функции с вариантами использования | Примеры

C++: Как получить имя файла по пути с расширением или без него | Повышение | Библиотека файловой системы C++17

C++: получение списка всех файлов в заданном каталоге и его подкаталогах с помощью Boost и C++17

C++: проверьте, является ли указанный путь файлом или каталогом, используя библиотеку файловой системы Boost & C++17

C++11: как остановить или завершить поток

C++11: Как использовать std::thread в качестве переменной-члена в классе?

C++11: Как создать вектор объектов потока?

C++11: как получить идентификатор потока?

C++11: std::array Учебник и примеры

C++11 — std::all_of() — Учебник и пример алгоритма

C++: как проверить, заканчивается ли строка другой заданной строкой

C++11: примеры и руководство по std::any_of()

C++: проверка, начинается ли строка с другой заданной строки

C++11: учебник и пример make_tuple

C++11: std::tuple Учебник и примеры

Умный указатель C++11. Часть 6: unique_ptr<> Учебное пособие и примеры

Многопоточность C++11. Часть 10: packaged_task<> Пример и руководство

Оставить комментарий Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Реклама

Реклама

Последние публикации

Что-то ищу

Учебники по C++/C++11

Условия использования

Условия и политика

Учебники по Python

Избранные сайты

Отказ от ответственности

Условия и политика

Авторское право © 2022 thisPointer

Техническое хранение или доступ строго необходимы для законной цели предоставления возможности использования конкретной услуги, явно запрошенной подписчиком или пользователем, или с единственной целью осуществления передачи сообщения по сети электронной связи.

Техническое хранение или доступ необходимы для законных целей хранения настроек, которые не запрашиваются подписчиком или пользователем.

Техническое хранилище или доступ, которые используются исключительно в статистических целях. Техническое хранилище или доступ, который используется исключительно для анонимных статистических целей.Без повестки в суд, добровольного согласия со стороны вашего интернет-провайдера или дополнительных записей от третьей стороны информация, хранящаяся или извлекаемая только для этой цели, обычно не может быть использована для вашей идентификации.

Техническое хранилище или доступ необходимы для создания профилей пользователей для отправки рекламы или отслеживания пользователя на веб-сайте или на нескольких веб-сайтах в аналогичных маркетинговых целях.

Техническое хранение или доступ строго необходимы для законной цели предоставления возможности использования конкретной услуги, явно запрошенной подписчиком или пользователем, или с единственной целью осуществления передачи сообщения по сети электронной связи.

Техническое хранение или доступ необходимы для законных целей хранения настроек, которые не запрашиваются подписчиком или пользователем.

Техническое хранилище или доступ, которые используются исключительно в статистических целях. Техническое хранилище или доступ, который используется исключительно для анонимных статистических целей. Без повестки в суд, добровольного согласия со стороны вашего интернет-провайдера или дополнительных записей от третьей стороны информация, хранящаяся или извлекаемая только для этой цели, обычно не может быть использована для вашей идентификации.

Техническое хранилище или доступ необходимы для создания профилей пользователей для отправки рекламы или отслеживания пользователя на веб-сайте или на нескольких веб-сайтах в аналогичных маркетинговых целях.

Читайте также: