Espacios de nombres
Variantes
Acciones

std::filesystem::path::replace_extension

De cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
path& replace_extension(const path& replacement = path());
(desde C++17)

Reemplaza la extensión con replacement o la elimina cuando se utiliza el valor por defecto de replacement.

Primero si la ruta de acceso tiene una extensión de tipo extension(), se elimina de la vista de formato genérico del nombre de ruta de acceso.

Luego se añade un carácter punto, a la vista de formato genérico del nombre de ruta de acceso, si replacement no está vacía y no comienza con el carácter punto.

Enotnces se añade replacement como si fuera por operator+=(replacement).

Contenido

[editar]Parámetros

replacement - La extensión con la que reemplazar.

[editar]Valor de retorno

*this

[editar]Excepciones

Puede lanzar excepciones definidas por la implementación.

[editar]Notas

El tipo de replacement es std::filesystem::path aunque no está destinado a representar un objeto en el sistema de archivos para tomar en cuenta la codificación de caracteres del sistema de archivos.

[editar]Ejemplo

#include <filesystem>#include <iomanip>#include <iostream>#include <utility>namespace fs = std::filesystem;   int main(){std::cout<<"Ruta: Ext: Resultado:\n"<<std::left;for(constauto&[path, extension]:{std::make_pair("/foo/bar.jpg", ".png"), std::make_pair("/foo/bar.jpg", "png"), std::make_pair("/foo/bar.jpg", "."), std::make_pair("/foo/bar.jpg", ""), std::make_pair("/foo/bar." , "png"), std::make_pair("/foo/bar" , ".png"), std::make_pair("/foo/bar" , "png"), std::make_pair("/foo/bar" , "."), std::make_pair("/foo/bar" , ""), std::make_pair("/foo/." , ".png"), std::make_pair("/foo/." , "png"), std::make_pair("/foo/." , "."), std::make_pair("/foo/." , ""), std::make_pair("/foo/" , ".png"), std::make_pair("/foo/" , "png"), }){ fs::path p = path, e = extension;std::cout<<std::setw(18)<< p <<std::setw(11)<< e; p.replace_extension(e);std::cout<< p <<'\n';}}

Salida:

Ruta: Ext: Resultado: "/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"

[editar]Véase también

Devuelve el componente de extensión de archivo de la ruta de acceso.
(función miembro pública)[editar]
Devuelve el componente de nombre de archivo de la ruta de acceso.
(función miembro pública)[editar]
Devuelve el componente del pie de la ruta de acceso (el nombre de archivo sin la extensión final).
(función miembro pública)[editar]
Verifica si el elemento de ruta de acceso correspondiente no está vacío.
(función miembro pública)
close