std::filesystem::path:: extension
|
path extension
(
)
const
;
|
(desde C++17) | |
Devuelve la extensión del componente del nombre de archivo de la vista en formato genérico de * this .
Si el
filename()
componente de la ruta en formato genérico contiene un punto (
.
), y no es uno de los elementos especiales del sistema de archivos
dot
o
dot-dot
, 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 la ruta.
Si el primer carácter en el 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 pathname es
.
o
..
, o si
filename()
no contiene el carácter
'.'
, entonces se retorna un path vacío.
Comportamiento adicional puede ser definido por las implementaciones para sistemas de archivos que añaden elementos adicionales (como flujos de datos alternativos o nombres de conjuntos de datos particionados) a las extensiones.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
La extensión del nombre de ruta actual o una ruta vacía si no hay extensión.
Excepciones
Puede lanzar excepciones definidas por la implementación.
Notas
La extensión devuelta por esta función incluye un punto para hacer 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 no POSIX, es posible que p. stem ( ) + p. extension ( ) ! = p. filename ( ) aunque las versiones de formato genérico sean las mismas.
Ejemplo
#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'; }
Salida:
".txt" "." "" ".cc" "." "" "" "" "" ".bar"
Véase también
|
devuelve el componente de ruta del nombre de archivo
(función miembro pública) |
|
|
devuelve el componente de ruta stem (nombre de archivo sin la extensión final)
(función miembro pública) |
|
|
reemplaza la extensión
(función miembro pública) |
|
|
verifica si el elemento de ruta correspondiente no está vacío
(función miembro pública) |