Espacios de nombres
Variantes
Acciones

std::filesystem::path::extension

De cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
path extension() const;
(desde C++17)

Devuelve la extensión del componente de nombre archivo de la vista en formato genérico de *this.

Si el componente filename() de la ruta en formato genérico contiene un punto (.), y no es uno de los elementos especiales del sistema de archivos punto o punto-punto, entonces la extensión es la subcadena que comienza en el punto más a la derecha (incluyendo el punto) y hasta el final del nombre de ruta de acceso.

Si el primer carácter del nombre del archivo es un punto, ese punto se ignora (un nombre de archivo como ".profile" no se trata como una extensión).

Si el nombre de ruta de acceso es ya sea . o .., o si filename() no contiene el carácter ., entonces se devuelve la ruta vacía.

Las implementaciones para sistemas de archivos pueden definir comportamientos adicionales que añaden elementos adicionales (como flujos de datos alternativos o nombres de conjuntos de datos particionados) a las extensiones.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

La extensión del nombre de ruta de acceso actual o una ruta vacía si no hay extensión.

[editar] Excepciones

Puede lanzar excepciones definidas por la implementación.

[editar] Notas

La extensión que devuelve esta función incluye un punto para que sea posible distinguir el archivo que termina con un punto (la función devuelve ".") de un archivo sin extensión (la función devuelve "").

En un sistema que nos es POSIX, es posible que p.stem()+p.extension() != p.filename() incluso cuando las versiones en formato genérico son las mismas.

[editar] Ejemplo

#include <iostream>
#include <filesystem>
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';
}

Salida:

".txt"
"."
""
".cc"
"."
""
""
""
""
".bar"

[editar] Véase también

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]
Reemplaza la extensión.
(función miembro pública) [editar]
Verifica si el elemento correspondiente de la ruta de acceso no está vacío.
(función miembro pública)