std::filesystem::path::replace_extension
Von cppreference.com
< cpp | filesystem | path
| path& replace_extension( const path& replacement = path() ); |
(seit C++17) | |
Ersetzt die Erweiterung durch replacement oder entfernt sie, wenn der Standardwert von replacement verwendet wird.
Zuerst wird, falls dieser Pfad eine extension() hat, diese aus der generischen Darstellung des Pfadnamens entfernt.
Dann wird ein Punkt-Zeichen an die generische Darstellung des Pfadnamens angehängt, wenn replacement nicht leer ist und nicht mit einem Punkt-Zeichen beginnt.
Dann wird replacement angehängt, als ob mittels operator+=(replacement).
Inhalt |
[bearbeiten] Parameter
| replacement | - | die zu ersetzende Erweiterung |
[bearbeiten] Rückgabewert
*this
[edit] Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
[bearbeiten] Hinweise
Der Typ von replacement ist std::filesystem::path, auch wenn er nicht dazu bestimmt ist, ein Objekt auf dem Dateisystem darzustellen, um die Dateisystem-Zeichenkodierung korrekt zu berücksichtigen.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <filesystem> #include <iomanip> #include <iostream> #include <utility> int main() { const int width1{18}, width2{11}; // columns' width std::cout << std::left << std::setw(width1) << "Path:" << std::setw(width2) << "Ext:" << "Result:\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'; } }
Ausgabe
Path: Ext: Result: "/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"
[bearbeiten] Siehe auch
| gibt die Dateiendungs-Pfadkomponente zurück (public member function) | |
| gibt die Dateinamen-Pfadkomponente zurück (public member function) | |
| gibt die Stem-Pfadkomponente zurück (Dateiname ohne die finale Endung) (public member function) | |
| prüft, ob das entsprechende Pfadelement nicht leer ist (öffentliche Memberfunktion) |