std::filesystem::path::extension
path extension() const; |
(since C++17) |
Возвращает расширение компонента имени файла в представлении пути общего формата *this.
Если компонент filename() пути общего формата содержит точку (.), и не является одним из специальных элементов файловой системы dot или dot-dot, то расширение — это подстрока, начинающаяся с правой точки (включая точку) и заканчивающаяся концом пути.
Если первый символ в имени файла — точка, эта точка игнорируется (имя файла, как ".profile", не рассматривается как расширение).
Если путь является . или .., или если компонент filename() не содержит символ '.', возвращается пустой путь.
Дополнительное поведение может быть определено реализациями для файловых систем, добавляющих дополнительные элементы (например, альтернативные потоки данных или имена разделенных набора данных) к расширениям.
Параметры
(нет)
Возвращаемое значение
Расширение текущего пути или пустой путь, если расширение отсутствует.
Исключения
Может вызывать реализационно-определенные исключения.
Примечания
Расширение, возвращаемое этой функцией, включает точку, чтобы можно было отличить файл, заканчивающийся точкой (функция возвращает "."), от файла без расширения (функция возвращает "").
В не-POSIX системах возможно, что p.stem() + p.extension() != p.filename(), даже если представления пути общего формата одинаковы.
Пример
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
std::cout << fs::path("/foo/bar.txt").extension() << '\n'
<< fs::path("/foo/bar.").extension() << '\n'
<< fs::path("/foo/bar").extension() << '\n'
<< fs::path("/foo/bar.txt/bar.cc").extension() << '\n'
<< fs::path("/foo/bar.txt/bar.").extension() << '\n'
<< fs::path("/foo/bar.txt/bar").extension() << '\n'
<< fs::path("/foo/.").extension() << '\n'
<< fs::path("/foo/..").extension() << '\n'
<< fs::path("/foo/.hidden").extension() << '\n'
<< fs::path("/foo/..bar").extension() << '\n';
}Вывод:
".txt" "." "" ".cc" "." "" "" "" "" ".bar"
См. также
|
возвращает компонент пути имени файла (публичный член-функция) |
|
|
возвращает компонент пути основы (имя файла без окончательного расширения) (публичный член-функция) |
|
|
заменяет расширение (публичный член-функция) |
|
|
проверяет, является ли соответствующий элемент пути непустым (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/path/extension