std::filesystem::path::make_preferred
Von cppreference.com
< cpp | filesystem | path
| path& make_preferred(); |
(seit C++17) | |
Konvertiert alle Verzeichnis-Trennzeichen in der generischen Ansicht des Pfades zum bevorzugten Verzeichnis-Trennzeichen.
Zum Beispiel wird unter Windows, wo \ das bevorzugte Trennzeichen ist, der Pfad foo/bar zu foo\bar konvertiert.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
*this
[edit] Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
[bearbeiten] Beispiel
Windows kann / als Trennzeichen verwenden, bevorzugt aber \, sodass make_preferred die Schrägstriche in Rückstriche umwandelt. POSIX hingegen verwendet \ nicht als Trennzeichen, da Rückstriche gültige Dateinamen-Zeichen sind – der Windows-Pfad unter POSIX bezieht sich tatsächlich auf eine Datei mit dem Namen "a\\b\\c". Aus diesem Grund werden die "Trennzeichen" nicht konvertiert.
Führen Sie diesen Code aus
#include <filesystem> #include <iostream> int main() { std::filesystem::path windows_path("a\\b\\c"), posix_path("a/b/c"); std::cout << "Windows path: " << windows_path << " -> " << windows_path.make_preferred() << '\n' << "POSIX path: " << posix_path << " -> " << posix_path.make_preferred() << '\n'; }
Ausgabe
// on Windows Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a\\b\\c" // on POSIX Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a/b/c"
[bearbeiten] Siehe auch
| constexpr value_type preferred_separator [static] |
alternativer Verzeichnistrenner, der zusätzlich zum portablen / verwendet werden kann. Unter Windows ist dies das umgekehrte Schrägstrichzeichen \. Unter POSIX ist dies derselbe Schrägstrich / wie der portable Trenner (public static member constant) |