std::filesystem::path:: extension
|
path extension
(
)
const
;
|
(depuis C++17) | |
Retourne l'extension du composant de nom de fichier de la vue au format générique de * this .
Si le composant
filename()
du chemin au format générique contient un point (
.
), et n'est pas l'un des éléments spéciaux du système de fichiers
dot
ou
dot-dot
, alors l'
extension
est la sous-chaîne commençant au point le plus à droite (incluant le point) et jusqu'à la fin du nom de chemin.
Si le premier caractère du nom de fichier est un point, ce point est ignoré (un nom de fichier comme ".profile" n'est pas traité comme une extension).
Si le chemin est soit
.
ou
..
, ou si
filename()
ne contient pas le caractère
'.'
, alors un chemin vide est retourné.
Un comportement supplémentaire peut être défini par les implémentations pour les systèmes de fichiers qui ajoutent des éléments supplémentaires (tels que des flux de données alternatifs ou des noms de jeux de données partitionnés) aux extensions.
Table des matières |
Paramètres
(aucun)
Valeur de retour
L'extension du nom de chemin actuel ou un chemin vide s'il n'y a pas d'extension.
Exceptions
Peut lever des exceptions définies par l'implémentation.
Notes
L'extension retournée par cette fonction inclut un point pour permettre de distinguer le fichier qui se termine par un point (la fonction retourne "." ) d'un fichier sans extension (la fonction retourne "" ).
Sur un système non-POSIX, il est possible que p. stem ( ) + p. extension ( ) ! = p. filename ( ) même si les versions au format générique sont identiques.
Exemple
#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'; }
Sortie :
".txt" "." "" ".cc" "." "" "" "" "" ".bar"
Voir aussi
|
renvoie le composant de chemin du nom de fichier
(fonction membre publique) |
|
|
renvoie le composant de chemin de la racine (nom de fichier sans l'extension finale)
(fonction membre publique) |
|
|
remplace l'extension
(fonction membre publique) |
|
|
vérifie si l'élément de chemin correspondant n'est pas vide
(fonction membre publique) |