std::filesystem::path:: replace_extension
|
path
&
replace_extension
(
const
path
&
replacement
=
path
(
)
)
;
|
(depuis C++17) | |
Remplace l'extension par replacement ou la supprime lorsque la valeur par défaut de replacement est utilisée.
Premièrement, si ce chemin possède une extension() , celle-ci est supprimée de la vue au format générique du nom de chemin.
Ensuite, un point est ajouté à la vue au format générique du chemin d'accès, si replacement n'est pas vide et ne commence pas par un point.
Ensuite replacement est ajouté comme si par operator + = ( replacement ) .
Table des matières |
Paramètres
| replacement | - | l'extension à remplacer |
Valeur de retour
* this
Exceptions
Peut lever des exceptions définies par l'implémentation.
Notes
Le type de replacement est std::filesystem::path même s'il n'est pas destiné à représenter un objet sur le système de fichiers afin de prendre correctement en compte l'encodage des caractères du système de fichiers.
Exemple
#include <filesystem> #include <iomanip> #include <iostream> #include <utility> int main() { const int width1{18}, width2{11}; // largeur des colonnes std::cout << std::left << std::setw(width1) << "Chemin:" << std::setw(width2) << "Ext:" << "Résultat:\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'; } }
Sortie :
Chemin: Ext: Résultat: "/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"
Voir aussi
|
renvoie le composant d'extension du chemin de fichier
(fonction membre publique) |
|
|
renvoie le composant nom de fichier du chemin
(fonction membre publique) |
|
|
renvoie le composant racine du chemin (nom de fichier sans l'extension finale)
(fonction membre publique) |
|
|
vérifie si l'élément de chemin correspondant n'est pas vide
(fonction membre publique) |