path
Klasa
Klasa path
przechowuje obiekt typu string_type
, nazywany myname
tutaj do celów ekspozycji, nadaje się do użycia jako nazwa ścieżki. string_type
jest synonimem , basic_string<value_type>
gdzie value_type
jest synonimem w wchar_t
systemie Windows lub char
w systemie POSIX.
Aby uzyskać więcej informacji i przykłady kodu, zobacz Nawigacja systemu plików (C++).
Składnia
class path;
Konstruktory
Konstruktor | opis |
---|---|
path |
Tworzy element path . |
Typedefs
Nazwa typu | opis |
---|---|
const_iterator |
Synonim dla elementu iterator . |
iterator |
Iterator stałej dwukierunkowej, która wyznacza path składniki .myname |
string_type |
Typ jest synonimem .basic_string<value_type> |
Funkcje składowe
Funkcja składowa | opis |
---|---|
append |
Dołącza określoną sekwencję do mypath , przekonwertowanej i wstawia preferred_separator zgodnie z potrzebami. |
assign |
mypath Zamienia się na określoną sekwencję, przekonwertowaną zgodnie z potrzebami. |
begin |
path::iterator Zwraca wyznaczanie pierwszego elementu ścieżki w ścieżce pathname, jeśli istnieje. |
c_str |
Zwraca wskaźnik do pierwszego znaku w mypath elem. |
clear |
mypath.clear() Wykonuje polecenie . |
compare |
Zwraca wartości porównania. |
concat |
Dołącza określoną sekwencję do mypath , przekonwertowanej (ale nie wstawia separatora) zgodnie z potrzebami. |
empty |
Zwraca wartość mypath.empty() . |
end |
Zwraca iterator końca sekwencji typu iterator . |
extension |
Zwraca sufiks .filename() |
filename |
Zwraca składnik katalogu głównego elementu myname , w szczególności empty() ? path() : *--end() . Składnik może być pusty. |
generic_string |
Zwraca z this->string<Elem, Traits, Alloc>(al) (w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_u16string |
Zwraca z u16string() (w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_u32string |
Zwraca z u32string() (w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_u8string |
Zwraca z u8string() (w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_wstring |
Zwraca z wstring() (w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
has_extension |
Zwraca wartość !extension().empty() . |
has_filename |
Zwraca wartość !filename().empty() . |
has_parent_path |
Zwraca wartość !parent_path().empty() . |
has_relative_path |
Zwraca wartość !relative_path().empty() . |
has_root_directory |
Zwraca wartość !root_directory().empty() . |
has_root_name |
Zwraca wartość !root_name().empty() . |
has_root_path |
Zwraca wartość !root_path().empty() . |
has_stem |
Zwraca wartość !stem().empty() . |
is_absolute |
W przypadku systemu Windows funkcja zwraca wartość has_root_name() && has_root_directory() . W przypadku systemu POSIX funkcja zwraca wartość has_root_directory() . |
is_relative |
Zwraca wartość !is_absolute() . |
make_preferred |
Konwertuje każdy separator na wartość zgodnie z potrzebami preferred_separator . |
native |
Zwraca natywną reprezentację ścieżki. |
parent_path |
Zwraca składnik ścieżki nadrzędnej elementu myname . |
preferred_separator |
Obiekt stały nadaje preferowany znak oddzielania składników ścieżki w zależności od systemu operacyjnego hosta. |
relative_path |
Zwraca składnik ścieżki względnej elementu myname . |
remove_filename |
Usuwa nazwę pliku. |
replace_extension |
Zastępuje rozszerzenie .myname |
replace_filename |
Zastępuje nazwę pliku. |
root_directory |
Zwraca składnik katalogu głównego elementu myname . |
root_name |
Zwraca składnik nazwy głównej elementu myname . |
root_path |
Zwraca składnik ścieżki głównej elementu myname . |
stem |
stem Zwraca składnik elementu myname . |
string |
Konwertuje sekwencję przechowywaną w pliku mypath . |
swap |
swap(mypath, right.mypath) Wykonuje polecenie . |
u16string |
Konwertuje sekwencję przechowywaną na mypath UTF-16 i zwraca ją przechowywaną w obiekcie typu u16string . |
u32string |
Konwertuje sekwencję przechowywaną w mypath pliku na utF-32 i zwraca ją przechowywaną w obiekcie typu u32string . |
u8string |
Konwertuje sekwencję przechowywaną w mypath formacie UTF-8 i zwraca ją przechowywaną w obiekcie typu u8string . |
value_type |
Typ opisuje elementy ścieżki preferowane przez system operacyjny hosta. |
wstring |
Konwertuje sekwencję przechowywaną w mypath pliku na kodowanie preferowane przez system hosta dla wchar_t sekwencji i zwraca ją przechowywaną w obiekcie typu wstring . |
Operatory
Operator | opis |
---|---|
operator= |
Zastępuje elementy ścieżki kopią innej ścieżki. |
operator+= |
Różne concat wyrażenia. |
operator/= |
Różne append wyrażenia. |
operator string_type |
Zwraca wartość myname . |
Wymagania
Nagłówek: <filesystem>
Przestrzeń nazw: std::experimental::filesystem
path::append
Dołącza określoną sekwencję do mypath
, przekonwertowanej i wstawia element zgodnie z potrzebami preferred_separator
.
template <class Source>
path& append(const Source& source);
template <class InIt>
path& append(InIt first, InIt last);
Parametry
source
Określona sekwencja.
first
Początek określonej sekwencji.
last
Koniec określonej sekwencji.
path::assign
mypath
Zamienia się na określoną sekwencję, przekonwertowaną zgodnie z potrzebami.
template <class Source>
path& assign(const Source& source);
template <class InIt>
path& assign(InIt first, InIt last);
Parametry
source
Określona sekwencja.
first
Początek określonej sekwencji.
last
Koniec określonej sekwencji.
path::begin
path::iterator
Zwraca wyznaczanie pierwszego elementu ścieżki w ścieżce pathname, jeśli istnieje.
iterator begin() const;
path::c_str
Zwraca wskaźnik do pierwszego znaku w mypath
elem.
const value_type& *c_str() const noexcept;
path::clear
mypath.clear()
Wykonuje polecenie .
void clear() noexcept;
path::compare
Pierwsza funkcja zwraca wartość mypath.compare(pval.native())
. Druga funkcja zwraca wartość mypath.compare(str)
. Trzecia funkcja zwraca wartość mypath.compare(ptr)
.
int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;
Parametry
pval
Ścieżka do porównania.
str
Ciąg do porównania.
ptr
Wskaźnik do porównania.
path::concat
Dołącza określoną sekwencję do mypath
, przekonwertowanej (ale nie wstawia separatora) zgodnie z potrzebami.
template <class Source>
path& concat(const Source& source);
template <class InIt>
path& concat(InIt first, InIt last);
Parametry
source
Określona sekwencja.
first
Początek określonej sekwencji.
last
Koniec określonej sekwencji.
path::const_iterator
Synonim dla elementu iterator
.
typedef iterator const_iterator;
path::empty
Zwraca wartość mypath.empty()
.
bool empty() const noexcept;
path::end
Zwraca iterator końca sekwencji typu iterator
.
iterator end() const;
path::extension
Zwraca sufiks .filename()
path extension() const;
Uwagi
Zwraca sufiks filename() X
takiego, że:
Jeśli X == path(".") || X == path("..")
lub jeśli X
nie zawiera kropki, sufiks jest pusty.
W przeciwnym razie sufiks zaczyna się od (i zawiera) prawą kropkę.
path::filename
Zwraca składnik katalogu głównego elementu myname
, w szczególności empty() path() : *--end()
. Składnik może być pusty.
path filename() const;
path::generic_string
Zwraca z this->string<Elem, Traits, Alloc>(al)
(w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
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
Zwraca z u16string()
(w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
u16string generic_u16string() const;
path::generic_u32string
Zwraca z u32string()
(w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
u32string generic_u32string() const;
path::generic_u8string
Zwraca z u8string()
(w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
string generic_u8string() const;
path::generic_wstring
Zwraca z wstring()
(w systemie Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
wstring generic_wstring() const;
path::has_extension
Zwraca wartość !extension().empty()
.
bool has_extension() const;
path::has_filename
Zwraca wartość !filename().empty()
.
bool has_filename() const;
path::has_parent_path
Zwraca wartość !parent_path().empty()
.
bool has_parent_path() const;
path::has_relative_path
Zwraca wartość !relative_path().empty()
.
bool has_relative_path() const;
path::has_root_directory
Zwraca wartość !root_directory().empty()
.
bool has_root_directory() const;
path::has_root_name
Zwraca wartość !root_name().empty()
.
bool has_root_name() const;
path::has_root_path
Zwraca wartość !root_path().empty()
.
bool has_root_path() const;
path::has_stem
Zwraca wartość !stem().empty()
.
bool has_stem() const;
path::is_absolute
W przypadku systemu Windows funkcja zwraca wartość has_root_name() && has_root_directory()
. W przypadku systemu POSIX funkcja zwraca wartość has_root_directory()
.
bool is_absolute() const;
path::is_relative
Zwraca wartość !is_absolute()
.
bool is_relative() const;
path::iterator
Iterator stałej dwukierunkowej, która wyznacza składniki ścieżki elementu 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;
// ...
};
Uwagi
Klasa opisuje iterator stałej dwukierunkowej, która wyznacza path
składniki myname
w sekwencji:
nazwa główna, jeśli jest obecna
katalog główny, jeśli istnieje
pozostałe elementy katalogu elementu nadrzędnego
path
, jeśli istnieją, kończące się nazwą pliku, jeśli istnieją
Dla pval
obiektu typu path
:
path::iterator X = pval.begin()
określa pierwszypath
element w ścieżce pathname, jeśli istnieje.X == pval.end()
jesttrue
to, gdyX
punkty tuż obok końca sekwencji składników.*X
Zwraca ciąg zgodny z bieżącym składnikiem++X
wyznacza następny składnik w sekwencji, jeśli istnieje.--X
określa poprzedni składnik w sekwencji, jeśli istnieje.Zmiana powoduje unieważnienie
myname
wszystkich iteratorów wyznaczających elementy w elemeciemyname
.
path::make_preferred
Konwertuje każdy separator na wartość zgodnie z potrzebami preferred_separator
.
path& make_preferred();
path::native
Pobierz natywną reprezentację ciągu ścieżki.
const string_type& native() const noexcept;
Uwagi
Ścieżka jest dostępna w przenośnym formacie ogólnym (patrz generic_string()
) lub natywnym formacie ścieżki. Ta funkcja zwraca ciąg macierzysty. W systemie POSIX format ogólny i format natywny są takie same.
W poniższym przykładzie uruchomionym w systemie Windows 11 ciąg ścieżki ogólnej to c:/t/temp/temp.txt
, a ciąg natywny to 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=
Zastępuje elementy ścieżki kopią innej ścieżki.
path& operator=(const path& right);
path& operator=(path&& right) noexcept;
template <class Source>
path& operator=(const Source& source);
Parametry
right
Element path
kopiowany do pliku path
.
source
Źródło path
.
Uwagi
Pierwszy operator elementu członkowskiego kopiuje right.myname
do elementu myname
. Drugi operator elementu członkowskiego przechodzi right.myname
do elementu myname
. Trzeci operator elementu członkowskiego zachowuje się tak samo jak *this = path(source)
.
path::operator+=
Różne concat
wyrażenia.
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);
Parametry
right
Dodana ścieżka.
str
Dodany ciąg.
ptr
Dodany wskaźnik.
elem
Dodany element value_type
lub Elem
.
source
Dodane źródło.
Uwagi
Funkcje składowe zachowują się tak samo jak następujące odpowiadające im wyrażenia:
concat(right);
concat(path(str));
concat(ptr);
concat(string_type(1, elem));
concat(source);
concat(path(basic_string<Elem>(1, elem)));
path::operator/=
Różne append
wyrażenia.
path& operator/=(const path& right);
template <class Source>
path& operator/=(const Source& source);
Parametry
right
Dodana ścieżka.
source
Dodane źródło.
Uwagi
Funkcje składowe zachowują się tak samo jak następujące odpowiadające im wyrażenia:
append(right);
append(source);
path::operator string_type
Zwraca wartość myname
.
operator string_type() const;
path::parent_path
Zwraca składnik ścieżki nadrzędnej elementu myname
.
path parent_path() const;
Uwagi
Zwraca składnik ścieżki nadrzędnej elementu myname
, w szczególności prefiks po myname
usunięciu filename().native()
i wszystkie bezpośrednio poprzedzające separatory katalogów. (Równie, jeśli begin() != end()
, jest to połączenie wszystkich elementów w zakresie [begin(), --end())
przez kolejne zastosowanie operator/=
.) Składnik może być pusty.
path::path
Konstruuje element path
na różne sposoby.
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);
Parametry
right
Ścieżka, do której skonstruowana ścieżka ma być kopią.
source
Źródłem, którego skonstruowana ścieżka ma być kopią.
loc
Określone ustawienia regionalne.
first
Położenie pierwszego elementu do skopiowania.
last
Położenie ostatniego elementu do skopiowania.
Uwagi
Konstruktory są konstruowane myname
na różne sposoby:
W tym przypadku path()
jest to myname()
.
W przypadku path(const path& right
elementu ) jest to myname(right.myname)
.
W tym przypadku path(path&& right)
jest to myname(right.myname)
.
W tym przypadku template<class Source> path(const Source& source)
jest to myname(source)
.
W tym myname(source)
przypadku template<class Source> path(const Source& source, const locale& loc)
należy uzyskać wszelkie potrzebne codecvt
aspekty z usługi loc
.
W tym przypadku template<class InIt> path(InIt first, InIt last)
jest to myname(first, last)
.
W tym myname(first, last)
przypadku template<class InIt> path(InIt first, InIt last, const locale& loc)
należy uzyskać wszelkie potrzebne codecvt
aspekty z usługi loc
.
path::preferred_separator
Obiekt stały nadaje preferowany znak oddzielania składników ścieżki w zależności od systemu operacyjnego hosta.
#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
Uwagi
Jest to równie dopuszczalne w większości kontekstów w systemie Windows do użycia L'/'
w jego miejscu.
path::relative_path
Zwraca składnik ścieżki względnej elementu myname
.
path relative_path() const;
Uwagi
Zwraca składnik myname
ścieżki względnej , w szczególności sufiks myname
po usunięciu root_path().native()
i wszelkie natychmiast nadmiarowe separatory katalogów. Składnik może być pusty.
path::remove_filename
Usuwa nazwę pliku.
path& remove_filename();
path::replace_extension
Zastępuje rozszerzenie .myname
path& replace_extension(const path& newext = path());
Parametry
newext
Nowe rozszerzenie.
Uwagi
Najpierw usuwa sufiks extension().native()
z myname
. Następnie, jeśli !newext.empty() && newext[0] != dot
(gdzie kropka to *path(".").c_str()
), kropka jest dołączana do myname
. Następnie newext
jest dołączany do myname
.
path::replace_filename
Zastępuje nazwę pliku.
path& replace_filename(const path& pval);
Parametry
pval
Ścieżka nazwy pliku.
Uwagi
Funkcja składowa jest wykonywana:
remove_filename();
*this /= pval;
return (*this);
path::root_directory
Zwraca składnik katalogu głównego elementu myname
.
path root_directory() const;
Uwagi
Składnik może być pusty.
path::root_name
Zwraca składnik nazwy głównej elementu myname
.
path root_name() const;
Uwagi
Składnik może być pusty.
path::root_path
Zwraca składnik ścieżki głównej elementu myname
.
path root_path() const;
Uwagi
Zwraca składnik ścieżki głównej elementu myname
, w szczególności / root_name()
root_directory
. Składnik może być pusty.
path::stem
stem
Zwraca składnik elementu myname
.
path stem() const;
Uwagi
stem
Zwraca składnik elementu myname
, w szczególności filename().native()
z usuniętym ciągiem extension().native()
końcowym. Składnik może być pusty.
path::string
Konwertuje sekwencję przechowywaną w pliku 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;
Uwagi
Pierwsza funkcja składowa (szablonu) konwertuje sekwencję przechowywaną w mypath
taki sam sposób jak:
string()
dlastring<char, Traits, Alloc>()
wstring()
dlastring<wchar_t, Traits, Alloc>()
u16string()
dlastring<char16_t, Traits, Alloc>()
u32string()
dlastring<char32_t, Traits, Alloc>()
Druga funkcja składowa konwertuje sekwencję przechowywaną w mypath
elemencie na kodowanie preferowane przez system hosta dla char
sekwencji i zwraca ją przechowywaną w obiekcie typu string
.
path::string_type
Typ jest synonimem .basic_string<value_type>
typedef basic_string<value_type> string_type;
path::swap
swap(mypath, right.mypath)
Wykonuje polecenie .
void swap(path& right) noexcept;
path::u16string
Konwertuje sekwencję przechowywaną na mypath
UTF-16 i zwraca ją przechowywaną w obiekcie typu u16string
.
u16string u16string() const;
path::u32string
Konwertuje sekwencję przechowywaną w mypath
pliku na utF-32 i zwraca ją przechowywaną w obiekcie typu u32string
.
u32string u32string() const;
path::u8string
Konwertuje sekwencję przechowywaną w mypath
formacie UTF-8 i zwraca ją przechowywaną w obiekcie typu u8string
.
string u8string() const;
path::value_type
Typ opisuje path
elementy preferowane przez system operacyjny hosta.
#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined
path::wstring
Konwertuje sekwencję przechowywaną w mypath
pliku na kodowanie preferowane przez system hosta dla wchar_t
sekwencji i zwraca ją przechowywaną w obiekcie typu wstring
.
wstring wstring() const;