std::filesystem::path:: replace_extension
|
path
&
replace_extension
(
const
path
&
replacement
=
path
(
)
)
;
|
(начиная с C++17) | |
Заменяет расширение на replacement или удаляет его, когда используется значение по умолчанию для replacement .
Во-первых, если этот путь имеет extension() , она удаляется из представления пути в обобщённом формате.
Затем к представлению пути в общем формате добавляется символ точки, если replacement не является пустым и не начинается с символа точки.
Затем replacement добавляется как будто с помощью operator + = ( replacement ) .
Содержание |
Параметры
| replacement | - | расширение для замены |
Возвращаемое значение
* this
Исключения
Может генерировать исключения, определяемые реализацией.
Примечания
Тип replacement является std::filesystem::path даже несмотря на то, что он не предназначен для представления объекта в файловой системе, чтобы корректно учитывать кодировку файловой системы.
Пример
#include <filesystem> #include <iomanip> #include <iostream> #include <utility> int main() { const int width1{18}, width2{11}; // ширина столбцов std::cout << std::left << std::setw(width1) << "Путь:" << std::setw(width2) << "Расш.:" << "Результат:\n"; for (const auto& [p, e] : { std::make_pair("/foo/bar.jpg", ".png"), {"/foo/bar.jpg", "png"}, {"/foo/bar.jpg", "."}, {"/foo/bar.jpg", ""}, {"/foo/bar.", "png"}, {"/foo/bar", ".png"}, {"/foo/bar", "png"}, {"/foo/bar", "."}, {"/foo/bar", ""}, {"/foo/.", ".png"}, {"/foo/.", "png"}, {"/foo/.", "."}, {"/foo/.", ""}, {"/foo/", ".png"}, {"/foo/", "png"}}) { std::filesystem::path path{p}, ext{e}; std::cout << std::setw(width1) << path << std::setw(width2) << ext; path.replace_extension(ext); std::cout << path << '\n'; } }
Вывод:
Путь: Расш.: Результат: "/foo/bar.jpg" ".png" "/foo/bar.png" "/foo/bar.jpg" "png" "/foo/bar.png" "/foo/bar.jpg" "." "/foo/bar." "/foo/bar.jpg" "" "/foo/bar" "/foo/bar." "png" "/foo/bar.png" "/foo/bar" ".png" "/foo/bar.png" "/foo/bar" "png" "/foo/bar.png" "/foo/bar" "." "/foo/bar." "/foo/bar" "" "/foo/bar" "/foo/." ".png" "/foo/..png" "/foo/." "png" "/foo/..png" "/foo/." "." "/foo/.." "/foo/." "" "/foo/." "/foo/" ".png" "/foo/.png" "/foo/" "png" "/foo/.png"
Смотрите также
|
возвращает компонент пути - расширение файла
(публичная функция-член) |
|
|
возвращает компонент пути - имя файла
(публичная функция-член) |
|
|
возвращает компонент пути - основу имени файла (имя файла без конечного расширения)
(публичная функция-член) |
|
|
проверяет, не является ли соответствующий элемент пути пустым
(публичная функция-член) |