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_type
ist ein Synonym für basic_string<value_type>
, bei dem value_type
es sich um ein Synonym für wchar_t
Windows oder char
posIX handelt.
Weitere Informationen und Codebeispiele finden Sie unter "Dateisystemnavigation (C++)".
Syntax
class path;
Konstruktoren
Konstruktor | Beschreibung |
---|---|
path |
Erstellt ein Objekt vom Typ path . |
TypeDefs
Typname | Beschreibung |
---|---|
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 | Beschreibung |
---|---|
append |
Fügt die angegebene Sequenz nach Bedarf an mypath , konvertiert und fügt eine preferred_separator ein. |
assign |
mypath 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 mypath . |
clear |
Führt aus mypath.clear() . |
compare |
Gibt Vergleichswerte zurück. |
concat |
Fügt die angegebene Sequenz nach Bedarf an mypath , konvertiert (aber kein Trennzeichen einfügen). |
empty |
Gibt mypath.empty() zurück. |
end |
Gibt einen End-of-Sequence-Iterator vom Typ iterator zurück. |
extension |
Gibt das Suffix von filename() . |
filename |
Gibt die Stammverzeichniskomponente von myname , insbesondere empty() ? path() : *--end() . Die Komponente kann leer sein. |
generic_string |
Gibt this->string<Elem, Traits, Alloc>(al) zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows). |
generic_u16string |
Gibt u16string() zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows). |
generic_u32string |
Gibt u32string() zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows). |
generic_u8string |
Gibt u8string() zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows). |
generic_wstring |
Gibt wstring() zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows). |
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ück has_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 konstante Objekt gibt je nach Betriebssystem des Hosts das bevorzugte Zeichen zum Trennen von Pfadkomponenten zurück. |
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 mypath . |
swap |
Führt aus swap(mypath, right.mypath) . |
u16string |
Konvertiert die in mypath UTF-16 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u16string zurück. |
u32string |
Konvertiert die in mypath UTF-32 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u32string zurück. |
u8string |
Konvertiert die in mypath UTF-8 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u8string zurü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 mypath die Codierung um und gibt sie zurück, die in einem Objekt vom Typ wstring gespeichert ist. |
Operatoren
Operator | Beschreibung |
---|---|
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
Header: <filesystem>
Namespace:std::experimental::filesystem
path::append
Fügt die angegebene Sequenz nach Bedarf anmypath
, 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
mypath
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 mypath
.
const value_type& *c_str() const noexcept;
path::clear
Führt aus mypath.clear()
.
void clear() noexcept;
path::compare
Diese erste Funktion gibt mypath.compare(pval.native())
zurück. Die zweite Funktion gibt mypath.compare(str)
zurück. Die dritte Funktion gibt zurück mypath.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 mypath
, 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 mypath.empty()
zurück.
bool empty() const noexcept;
path::end
Gibt einen End-of-Sequence-Iterator vom Typ iterator
zurü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 dem rechten Punkt (und umfasst diesen).
path::filename
Gibt die Stammverzeichniskomponente von myname
, insbesondere empty() path() : *--end()
. Die Komponente kann leer sein.
path filename() const;
path::generic_string
Gibt this->string<Elem, Traits, Alloc>(al)
zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows).
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()
zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows).
u16string generic_u16string() const;
path::generic_u32string
Gibt u32string()
zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows).
u32string generic_u32string() const;
path::generic_u8string
Gibt u8string()
zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows).
string generic_u8string() const;
path::generic_wstring
Gibt wstring()
zurück, wobei jeder umgekehrte Schrägstrich in einen Schrägstrich konvertiert wird (unter Windows).
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ück has_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:
den Stammnamen, falls vorhanden
das Stammverzeichnis, falls vorhanden
die verbleibenden Verzeichniselemente des übergeordneten
path
Elements , falls vorhanden, mit dem Dateinamen enden, sofern vorhanden
Für pval
ein Objekt vom Typ path
:
path::iterator X = pval.begin()
legt das erstepath
Element im Pfadnamen fest, falls vorhanden.X == pval.end()
isttrue
, wennX
Punkte direkt hinter dem Ende der Sequenz von Komponenten liegt.*X
gibt eine Zeichenfolge zurück, die der aktuellen Komponente entspricht.++X
legt die nächste Komponente in der Sequenz fest, falls vorhanden.--X
legt die vorhergehende Komponente in der Sequenz fest, falls vorhanden.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 unter Windows 11 ist c:/t/temp/temp.txt
die generische Pfadzeichenfolge und die systemeigene Zeichenfolge c:\\t\\temp.txt
// Compile with /std:c++17 or higher
#include <filesystem>
int main()
{
std::filesystem::path p(R"(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
Der Quell-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 wie die folgenden entsprechenden Ausdrücke:
concat(right);
concat(path(str));
concat(ptr);
concat(string_type(1, elem));
concat(source);
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 wie die folgenden entsprechenden Ausdrücke:
append(right);
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 konstante Objekt gibt je nach Betriebssystem des Hosts das bevorzugte Zeichen zum Trennen von Pfadkomponenten zurück.
#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
In den meisten Kontexten unter Windows ist die Verwendung L'/'
in den meisten Kontexten gleichermaßen zulässig.
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 kann leer sein.
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ügtmyname
. 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 führt Folgendes aus:
remove_filename();
*this /= pval;
return (*this);
path::root_directory
Gibt die Stammverzeichniskomponente von myname
.
path root_directory() const;
Hinweise
Die Komponente kann leer sein.
path::root_name
Gibt die Stammnamenkomponente von myname
.
path root_name() const;
Hinweise
Die Komponente kann leer sein.
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 kann leer sein.
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 kann leer sein.
path::string
Konvertiert die in mypath
.
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 mypath
ist wie:
string()
fürstring<char, Traits, Alloc>()
wstring()
fürstring<wchar_t, Traits, Alloc>()
u16string()
fürstring<char16_t, Traits, Alloc>()
u32string()
fürstring<char32_t, Traits, Alloc>()
Die zweite Memberfunktion konvertiert die sequenz, die in mypath
der vom Hostsystem bevorzugten Codierung für eine char
Sequenz gespeichert ist, und gibt sie in einem Objekt vom Typ string
zurü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(mypath, right.mypath)
.
void swap(path& right) noexcept;
path::u16string
Konvertiert die in mypath
UTF-16 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u16string
zurück.
u16string u16string() const;
path::u32string
Konvertiert die in mypath
UTF-32 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u32string
zurück.
u32string u32string() const;
path::u8string
Konvertiert die in mypath
UTF-8 gespeicherte Sequenz und gibt sie in einem Objekt vom Typ u8string
zurü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 mypath
die Codierung um und gibt sie zurück, die in einem Objekt vom Typ wstring
gespeichert ist.
wstring wstring() const;