Namensräume
Varianten
Aktionen

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.

#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) [bearbeiten]