std::filesystem::path:: make_preferred
| Member types | ||||||||||||||||||||||||||
| Member constants | ||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Path decomposition | ||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||
|
path
&
make_preferred
(
)
;
|
(seit C++17) | |
Wandelt alle Verzeichnistrennzeichen in der generischen Darstellung des Pfads in das bevorzugte Verzeichnistrennzeichen um.
Beispielsweise wird unter Windows, wo \ das bevorzugte Trennzeichen ist, der Pfad foo / bar konvertiert zu foo\bar .
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
* this
Ausnahmen
Kann implementierungsdefinierte Ausnahmen auslösen.
Beispiel
Windows kann / als Separator verwenden, bevorzugt jedoch \ , daher konvertiert make_preferred die Schrägstriche in Backslashes. Andererseits verwendet POSIX \ nicht als Separator, da Backslashes gültige Dateinamenzeichen sind – der Windows-Pfad unter POSIX bezieht sich tatsächlich auf eine Datei mit dem Namen "a \\ b \\ c" . Aus diesem Grund werden die "Separators" nicht konvertiert.
#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"
Siehe auch
|
constexpr value_type
preferred_separator
[static]
|
Alternativer Verzeichnisseparator, der zusätzlich zum portablen
/
verwendet werden kann. Unter Windows ist dies der Backslash
\
. Unter POSIX ist dies derselbe Schrägstrich
/
wie der portable Separator
(öffentliche statische Member-Konstante) |