<experimental/filesystem> Pfadklasse

Important

Diese Seite dokumentiert die entfernte Microsoft vorstandard-Implementierungstd::experimental::filesystem::path, die von der <experimental/filesystem> Kopfzeile bereitgestellt wird. Es ist nicht die C++17-Klasse std::filesystem::path . Diese Vorstandardimplementierung basiert auf der Technischen Spezifikation (File System Technical Specification , N4100) und dem vorigen C++17 std::filesystem. Der <experimental/filesystem> Header und der std::experimental::filesystem Namespace werden ab dem Microsoft Visual C++-Toolset 14.51 entfernt. Die aktuelle, unterstützte C++17-Implementierung finden Sie unter path Klasse.

Die path Klasse speichert ein Objekt vom Typ string_type, das hier für die Zwecke der Exposition aufgerufen myname wird, geeignet für die Verwendung als Pfadname. string_typeist ein Synonym für basic_string<value_type>, wobei value_type ein Synonym für wchar_t Windows ist.

Syntax

class path;

Constructors

Konstruktor Description
path Erstellt ein Objekt vom Typ path.

TypeDefs

Typname Description
const_iterator Ein Synonym für iterator.
iterator Ein bidirektionaler Konstanten-Iterator, der die path Komponenten von myname.
string_type Der Typ ist ein Synonym für basic_string<value_type>.

Memberfunktionen

Memberfunktion Description
append Fügt die angegebene Sequenz nach Bedarf an myname, konvertiert und fügt eine preferred_separator ein.
assign myname Ersetzt nach Bedarf durch die angegebene Sequenz.
begin Gibt ein path::iterator Designieren des ersten Pfadelements im Pfadnamen zurück, sofern vorhanden.
c_str Gibt einen Zeiger auf das erste Zeichen in myname.
clear Führt aus myname.clear().
compare Gibt Vergleichswerte zurück.
concat Fügt die angegebene Sequenz nach Bedarf an myname, konvertiert (aber kein Trennzeichen einfügen).
empty Gibt myname.empty() zurück.
end Gibt einen End-of-Sequence-Iterator vom Typ iteratorzurück.
extension Gibt das Suffix von filename().
filename Gibt die Dateinamenkomponente von myname, insbesondere empty() ? path() : *--end(). Die Komponente ist möglicherweise leer.
generic_string Gibt this->string<Elem, Traits, Alloc>(al) einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.
generic_u16string Gibt u16string() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.
generic_u32string In der historischen MSVC-Implementierung gelöscht.
generic_u8string Gibt u8string() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.
generic_wstring Gibt wstring() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.
has_extension Gibt !extension().empty() zurück.
has_filename Gibt !filename().empty() zurück.
has_parent_path Gibt !parent_path().empty() zurück.
has_relative_path Gibt !relative_path().empty() zurück.
has_root_directory Gibt !root_directory().empty() zurück.
has_root_name Gibt !root_name().empty() zurück.
has_root_path Gibt !root_path().empty() zurück.
has_stem Gibt !stem().empty() zurück.
is_absolute Für Windows gibt die Funktion zurückhas_root_name() && has_root_directory(). Für POSIX gibt die Funktion zurück has_root_directory().
is_relative Gibt !is_absolute() zurück.
make_preferred Wandelt jedes Trennzeichen nach Bedarf in ein preferred_separator .
native Gibt die systemeigene Darstellung des Pfads zurück.
parent_path Gibt die übergeordnete Pfadkomponente von myname.
preferred_separator Das Konstantenobjekt gibt je nach Hostbetriebssystem das bevorzugte Zeichen für das Trennen von Pfadkomponenten an.
relative_path Gibt die relative Pfadkomponente von myname.
remove_filename Entfernt den Dateinamen.
replace_extension Ersetzt die Erweiterung von myname.
replace_filename Ersetzt den Dateinamen.
root_directory Gibt die Stammverzeichniskomponente von myname.
root_name Gibt die Stammnamenkomponente von myname.
root_path Gibt die Stammpfadkomponente von myname.
stem Gibt die stem Komponente von myname.
string Konvertiert die in myname.
swap Führt aus swap(myname, right.myname).
u16string Konvertiert die in myname UTF-16 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u16stringzurück.
u32string In der historischen MSVC-Implementierung gelöscht.
u8string Konvertiert die in myname UTF-8 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u8stringzurück.
value_type Der Typ beschreibt die Pfadelemente, die vom Hostbetriebssystem bevorzugt werden.
wstring Wandelt die vom Hostsystem bevorzugte Codierung für eine wchar_t Sequenz in myname die Codierung um und gibt sie zurück, die in einem Objekt vom Typ wstringgespeichert ist.

Betriebspersonal

Operator Description
operator= Ersetzt die Elemente des Pfads durch eine Kopie eines anderen Pfads.
operator+= Verschiedene concat Ausdrücke.
operator/= Verschiedene append Ausdrücke.
operator string_type Gibt myname zurück.

Anforderungen

Kopfball:<experimental/filesystem>

Namespace:std::experimental::filesystem

path::append

Fügt die angegebene Sequenz nach Bedarf anmyname, konvertiert und eingefügt.preferred_separator

template <class Source>
path& append(const Source& source);

template <class InIt>
path& append(InIt first, InIt last);

Parameter

source
Angegebene Sequenz.

first
Beginn der angegebenen Sequenz.

last
Ende der angegebenen Sequenz.

path::assign

myname Ersetzt nach Bedarf durch die angegebene Sequenz.

template <class Source>
path& assign(const Source& source);

template <class InIt>
path& assign(InIt first, InIt last);

Parameter

source
Angegebene Sequenz.

first
Beginn der angegebenen Sequenz.

last
Ende der angegebenen Sequenz.

path::begin

Gibt ein path::iterator Designieren des ersten Pfadelements im Pfadnamen zurück, sofern vorhanden.

iterator begin() const;

path::c_str

Gibt einen Zeiger auf das erste Zeichen in myname.

const value_type* c_str() const noexcept;

path::clear

Führt aus myname.clear().

void clear() noexcept;

path::compare

Die erste Funktion gibt zurück myname.compare(pval.native()). Die zweite Funktion gibt zurück myname.compare(str). Die dritte Funktion gibt zurück myname.compare(ptr).

int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;

Parameter

pval
Der zu vergleichende Pfad.

str
Zu vergleichende Zeichenfolge.

ptr
Zu vergleichende Zeiger.

path::concat

Fügt die angegebene Sequenz nach Bedarf an myname, konvertiert (aber kein Trennzeichen einfügen).

template <class Source>
path& concat(const Source& source);

template <class InIt>
path& concat(InIt first, InIt last);

Parameter

source
Angegebene Sequenz.

first
Beginn der angegebenen Sequenz.

last
Ende der angegebenen Sequenz.

path::const_iterator

Ein Synonym für iterator.

typedef iterator const_iterator;

path::empty

Gibt myname.empty() zurück.

bool empty() const noexcept;

path::end

Gibt einen End-of-Sequence-Iterator vom Typ iteratorzurück.

iterator end() const;

path::extension

Gibt das Suffix von filename().

path extension() const;

Hinweise

Gibt das Suffix der filename() X folgenden Art zurück:

Wenn X == path(".") || X == path("..") oder wenn X kein Punkt enthalten ist, ist das Suffix leer.

Andernfalls beginnt das Suffix mit (und enthält) den ganz rechts sten Punkt.

path::filename

Gibt die Dateinamenkomponente von myname, insbesondere empty() ? path() : *--end(). Die Komponente ist möglicherweise leer.

path filename() const;

path::generic_string

Gibt this->string<Elem, Traits, Alloc>(al) einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.

template <class Elem,
    class Traits = char_traits<Elem>,
    class Alloc = allocator<Elem>>
  basic_string<Elem, Traits, Alloc>
    generic_string(const Alloc& al = Alloc()) const;

string generic_string() const;

path::generic_u16string

Gibt u16string() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.

u16string generic_u16string() const;

path::generic_u32string

Diese Funktion wird in der historischen MSVC-Implementierung gelöscht.

u32string generic_u32string() const = delete;

path::generic_u8string

Gibt u8string() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.

string generic_u8string() const;

path::generic_wstring

Gibt wstring() einen umgekehrten Schrägstrich zurück( unter Windows), der in einen Schrägstrich konvertiert wurde.

wstring generic_wstring() const;

path::has_extension

Gibt !extension().empty() zurück.

bool has_extension() const;

path::has_filename

Gibt !filename().empty() zurück.

bool has_filename() const;

path::has_parent_path

Gibt !parent_path().empty() zurück.

bool has_parent_path() const;

path::has_relative_path

Gibt !relative_path().empty() zurück.

bool has_relative_path() const;

path::has_root_directory

Gibt !root_directory().empty() zurück.

bool has_root_directory() const;

path::has_root_name

Gibt !root_name().empty() zurück.

bool has_root_name() const;

path::has_root_path

Gibt !root_path().empty() zurück.

bool has_root_path() const;

path::has_stem

Gibt !stem().empty() zurück.

bool has_stem() const;

path::is_absolute

Für Windows gibt die Funktion zurückhas_root_name() && has_root_directory(). Für POSIX gibt die Funktion zurück has_root_directory().

bool is_absolute() const;

path::is_relative

Gibt !is_absolute() zurück.

bool is_relative() const;

path::iterator

Ein bidirektionaler Konstanten-Iterator, der die Pfadkomponenten von myname.

class iterator
   {
   // bidirectional iterator for path
   typedef bidirectional_iterator_tag iterator_category;
   typedef path_type value_type;
   typedef ptrdiff_t difference_type;
   typedef const value_type *pointer;
   typedef const value_type& reference;
   // ...
   };

Hinweise

Die Klasse beschreibt einen bidirektionalen Konstanten-Iterator, der die path Komponenten myname der Sequenz angibt:

  1. der Stammname, falls vorhanden

  2. das Stammverzeichnis, falls vorhanden

  3. die verbleibenden Verzeichniselemente des übergeordneten pathElements , falls vorhanden, mit dem Dateinamen enden, sofern vorhanden

Für pval ein Objekt vom Typ path:

  1. path::iterator X = pval.begin() legt das erste path Element im Pfadnamen fest, falls vorhanden.

  2. X == pval.end() ist true , wenn X Punkte direkt hinter dem Ende der Sequenz von Komponenten liegt.

  3. *X gibt eine Zeichenfolge zurück, die der aktuellen Komponente entspricht.

  4. ++X legt die nächste Komponente in der Sequenz fest, sofern vorhanden.

  5. --X legt die vorangehende Komponente in der Sequenz fest, sofern vorhanden.

  6. myname Durch das Ändern werden alle Iteratoren, die Elemente entwerfen, ungültig.myname

path::make_preferred

Wandelt jedes Trennzeichen nach Bedarf in ein preferred_separator .

path& make_preferred();

path::native

Rufen Sie die native Zeichenfolgendarstellung des Pfads ab.

const string_type& native() const noexcept;

Hinweise

Der Pfad ist in einem portablen generischen Format (siehe generic_string()) oder dem systemeigenen Format des Pfads verfügbar. Diese Funktion gibt die systemeigene Zeichenfolge zurück. Auf einem POSIX-System sind das generische Format und das systemeigene Format identisch.

Im folgenden Beispiel, das auf Windows ausgeführt wird, ist c:/t/temp.txt die generische Pfadzeichenfolge und die systemeigene Zeichenfolge .c:\t\temp.txt

// Compile with /std:c++14 and _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING defined.
#include <experimental/filesystem>

int main()
{
    std::experimental::filesystem::path p(LR"(c:\t\temp.txt)");
    auto native = p.native();          // Windows: L"c:\\t\\temp.txt"
    auto generic = p.generic_string(); // Windows: "c:/t/temp.txt"
}

path::operator=

Ersetzt die Elemente des Pfads durch eine Kopie eines anderen Pfads.

path& operator=(const path& right);
path& operator=(path&& right) noexcept;

template <class Source>
path& operator=(const Source& source);

Parameter

right
Das path kopierte In das path.

source
Die Quelle path.

Hinweise

Der erste Memberoperator kopiert right.myname in myname. Der zweite Memberoperator wechselt right.myname zu myname. Der dritte Memberoperator verhält sich wie *this = path(source).

path::operator+=

Verschiedene concat Ausdrücke.

path& operator+=(const path& right);
path& operator+=(const string_type& str);
path& operator+=(const value_type *ptr);
path& operator+=(value_type elem);

template <class Source>
path& operator+=(const Source& source);

template <class Elem>
path& operator+=(Elem elem);

Parameter

right
Der hinzugefügte Pfad.

str
Die hinzugefügte Zeichenfolge.

ptr
Der hinzugefügte Zeiger.

elem
Das hinzugefügte value_type oder Elem.

source
Die hinzugefügte Quelle.

Hinweise

Die Memberfunktionen verhalten sich genauso wie die folgenden entsprechenden Ausdrücke:

  1. concat(right);

  2. concat(path(str));

  3. concat(ptr);

  4. concat(string_type(1, elem));

  5. concat(source);

  6. concat(path(basic_string<Elem>(1, elem)));

path::operator/=

Verschiedene append Ausdrücke.

path& operator/=(const path& right);

template <class Source>
path& operator/=(const Source& source);

Parameter

right
Der hinzugefügte Pfad.

source
Die hinzugefügte Quelle.

Hinweise

Die Memberfunktionen verhalten sich genauso wie die folgenden entsprechenden Ausdrücke:

  1. append(right);

  2. append(source);

path::operator string_type

Gibt myname zurück.

operator string_type() const;

path::parent_path

Gibt die übergeordnete Pfadkomponente von myname.

path parent_path() const;

Hinweise

Gibt die übergeordnete Pfadkomponente von myname, insbesondere das Präfix nach myname dem Entfernen filename().native() und alle unmittelbar vorangehenden Verzeichnistrennzeichen zurück. (Gleich, wenn begin() != end(), ist es die Kombination aller Elemente im Bereich [begin(), --end()) durch aufeinander folgende Anwendung operator/=.) Die Komponente ist möglicherweise leer.

path::path

Erstellt eine path auf verschiedene Weise.

path();

path(const path& right);
path(path&& right) noexcept;

template <class Source>
path(const Source& source);

template <class Source>
path(const Source& source, const locale& loc);

template <class InIt>
path(InIt first, InIt last);

template <class InIt>
path(InIt first, InIt last, const locale& loc);

Parameter

right
Der Pfad, von dem der konstruierte Pfad eine Kopie sein soll.

source
Die Quelle, von der der konstruierte Pfad eine Kopie sein soll.

loc
Das angegebene Gebietsschema.

first
Die Position des ersten zu kopierenden Elements.

last
Die Position des letzten zu kopierenden Elements.

Hinweise

Die Konstruktoren erstellen myname alle auf verschiedene Arten:

Dafür path() ist myname()es .

Für path(const path& right) ist myname(right.myname)es .

Dafür path(path&& right) ist myname(right.myname)es .

Dafür template<class Source> path(const Source& source) ist myname(source)es .

Für template<class Source> path(const Source& source, const locale& loc) sie myname(source)erhalten Sie alle erforderlichen codecvt Facets von loc.

Dafür template<class InIt> path(InIt first, InIt last) ist myname(first, last)es .

Für template<class InIt> path(InIt first, InIt last, const locale& loc) sie myname(first, last)erhalten Sie alle erforderlichen codecvt Facets von loc.

path::preferred_separator

Das Konstantenobjekt gibt je nach Hostbetriebssystem das bevorzugte Zeichen für das Trennen von Pfadkomponenten an.

#if _WIN32_C_LIB
static constexpr value_type preferred_separator = L'\\';
#else // assume POSIX
static constexpr value_type preferred_separator = '/';
#endif // filesystem model now defined

Hinweise

Es ist in den meisten Kontexten unter Windows gleichermaßen zulässig, an seinem Ort zu verwendenL'/'.

path::relative_path

Gibt die relative Pfadkomponente von myname.

path relative_path() const;

Hinweise

Gibt die relative Pfadkomponente von myname, insbesondere das Suffix nach myname dem Entfernen root_path().native() und alle unmittelbar nachfolgenden redundanten Verzeichnistrennzeichen zurück. Die Komponente ist möglicherweise leer.

path::remove_filename

Entfernt den Dateinamen.

path& remove_filename();

path::replace_extension

Ersetzt die Erweiterung von myname.

path& replace_extension(const path& newext = path());

Parameter

newext
Die neue Erweiterung.

Hinweise

Entfernt zuerst das Suffix extension().native() aus myname. Wenn es sich dann !newext.empty() && newext[0] != dot um einen Punkt handelt *path(".").c_str(), wird der Punkt angefügt myname. newext Anschließend wird an .myname

path::replace_filename

Ersetzt den Dateinamen.

path& replace_filename(const path& pval);

Parameter

pval
Der Pfad des Dateinamens.

Hinweise

Die Memberfunktion wird ausgeführt:

remove_filename();

*this /= pval;
return (*this);

path::root_directory

Gibt die Stammverzeichniskomponente von myname.

path root_directory() const;

Hinweise

Die Komponente ist möglicherweise leer.

path::root_name

Gibt die Stammnamenkomponente von myname.

path root_name() const;

Hinweise

Die Komponente ist möglicherweise leer.

path::root_path

Gibt die Stammpfadkomponente von myname.

path root_path() const;

Hinweise

Gibt die Stammpfadkomponente von myname, insbesondere root_name() / root_directory. Die Komponente ist möglicherweise leer.

path::stem

Gibt die stem Komponente von myname.

path stem() const;

Hinweise

Gibt die stem Komponente von myname, insbesondere filename().native() bei entfernten nachgestellten extension().native() . Die Komponente ist möglicherweise leer.

path::string

Konvertiert die in myname.

template <class Elem, class Traits = char_traits<Elem>, class Alloc = allocator<Elem>>
basic_string<Elem, Traits, Alloc> string(const Alloc& al = Alloc()) const;
string string() const;

Hinweise

Die erste Memberfunktion (Vorlage) konvertiert die sequenz, die auf die gleiche Weise gespeichert myname ist wie:

  1. string() für string<char, Traits, Alloc>()

  2. wstring() für string<wchar_t, Traits, Alloc>()

  3. u16string() für string<char16_t, Traits, Alloc>()

Die zweite Memberfunktion konvertiert die sequenz, die in myname der vom Hostsystem bevorzugten Codierung für eine char Sequenz gespeichert ist, und gibt sie in einem Objekt vom Typ stringzurück.

path::string_type

Der Typ ist ein Synonym für basic_string<value_type>.

typedef basic_string<value_type> string_type;

path::swap

Führt aus swap(myname, right.myname).

void swap(path& right) noexcept;

path::u16string

Konvertiert die in myname UTF-16 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u16stringzurück.

u16string u16string() const;

path::u32string

Diese Funktion wird in der historischen MSVC-Implementierung gelöscht.

u32string u32string() const = delete;

path::u8string

Konvertiert die in myname UTF-8 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u8stringzurück.

string u8string() const;

path::value_type

Der Typ beschreibt die path vom Hostbetriebssystem bevorzugten Elemente.

#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined

path::wstring

Wandelt die vom Hostsystem bevorzugte Codierung für eine wchar_t Sequenz in myname die Codierung um und gibt sie zurück, die in einem Objekt vom Typ wstringgespeichert ist.

wstring wstring() const;

Siehe auch

<experimental/filesystem>
<experimental/filesystem> Operatoren