Udostępnij za pośrednictwem


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 mypathelem.
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 mypathelem.

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:

  1. nazwa główna, jeśli jest obecna

  2. katalog główny, jeśli istnieje

  3. 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:

  1. path::iterator X = pval.begin() określa pierwszy path element w ścieżce pathname, jeśli istnieje.

  2. X == pval.end() jest true to, gdy X punkty tuż obok końca sekwencji składników.

  3. *X Zwraca ciąg zgodny z bieżącym składnikiem

  4. ++X wyznacza następny składnik w sekwencji, jeśli istnieje.

  5. --X określa poprzedni składnik w sekwencji, jeśli istnieje.

  6. Zmiana powoduje unieważnienie myname wszystkich iteratorów wyznaczających elementy w elemecie myname.

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:

  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/=

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:

  1. append(right);

  2. 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& rightelementu ) 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:

  1. string() dla string<char, Traits, Alloc>()

  2. wstring() dla string<wchar_t, Traits, Alloc>()

  3. u16string() dla string<char16_t, Traits, Alloc>()

  4. u32string() dla string<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;

Zobacz też

Odwołanie do plików nagłówka