Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Ta strona dokumentuje usuniętą implementację Microsoft przedstandardowej std::experimental::filesystem::path dostarczonej <experimental/filesystem> przez nagłówek. Nie jest to klasa C++17 std::filesystem::path . Ta wstępna implementacja jest oparta na specyfikacji technicznej systemu plików (N4100) i poprzedza język C++17 std::filesystem. Nagłówek <experimental/filesystem> i std::experimental::filesystem przestrzeń nazw są usuwane, począwszy od zestawu narzędzi Microsoft Visual C++ 14.51. Aby uzyskać bieżącą, obsługiwaną implementację języka C++17, zobacz path klasę.
Klasa path przechowuje obiekt typu string_type, nazywany myname tutaj do celów ekspozycji, nadaje się do użycia jako nazwa ścieżki.
string_typejest synonimem , basic_string<value_type>gdzie value_type jest synonimem wchar_t dla Windows.
Składnia
class path;
Constructors
| Konstruktor | Opis |
|---|---|
path |
Tworzy element path. |
Definicje typów
| 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 myname, przekonwertowanej i wstawia preferred_separator zgodnie z potrzebami. |
assign |
myname 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 mynameelem. |
clear |
myname.clear()Wykonuje polecenie . |
compare |
Zwraca wartości porównania. |
concat |
Dołącza określoną sekwencję do myname, przekonwertowanej (ale nie wstawia separatora) zgodnie z potrzebami. |
empty |
Zwraca wartość myname.empty(). |
end |
Zwraca iterator końca sekwencji typu iterator. |
extension |
Zwraca sufiks .filename() |
filename |
Zwraca składnik nazwy pliku , mynamew szczególności empty() ? path() : *--end(). Składnik może być pusty. |
generic_string |
Zwraca wartość this->string<Elem, Traits, Alloc>(al) z (w obszarze Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_u16string |
Zwraca wartość u16string() z (w obszarze Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_u32string |
Usunięto w historycznej implementacji MSVC. |
generic_u8string |
Zwraca wartość u8string() z (w obszarze Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu. |
generic_wstring |
Zwraca wartość wstring() z (w obszarze 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 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 myname. |
swap |
swap(myname, right.myname)Wykonuje polecenie . |
u16string |
Konwertuje sekwencję przechowywaną na myname UTF-16 i zwraca ją przechowywaną w obiekcie typu u16string. |
u32string |
Usunięto w historycznej implementacji MSVC. |
u8string |
Konwertuje sekwencję przechowywaną w myname 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 myname pliku na kodowanie preferowane przez system hosta dla wchar_t sekwencji i zwraca ją przechowywaną w obiekcie typu wstring. |
Operatorów
| 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:<experimental/filesystem>
Przestrzeń nazw: std::experimental::filesystem
path::append
Dołącza określoną sekwencję do myname, 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);
Parameters
source
Określona sekwencja.
first
Początek określonej sekwencji.
last
Koniec określonej sekwencji.
path::assign
myname 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);
Parameters
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 mynameelem.
const value_type* c_str() const noexcept;
path::clear
myname.clear()Wykonuje polecenie .
void clear() noexcept;
path::compare
Pierwsza funkcja zwraca wartość myname.compare(pval.native()). Druga funkcja zwraca wartość myname.compare(str). Trzecia funkcja zwraca wartość myname.compare(ptr).
int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;
Parameters
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 myname, 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);
Parameters
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ść myname.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 nazwy pliku , mynamew szczególności empty() ? path() : *--end(). Składnik może być pusty.
path filename() const;
path::generic_string
Zwraca wartość this->string<Elem, Traits, Alloc>(al) z (w obszarze 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 wartość u16string() z (w obszarze Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
u16string generic_u16string() const;
path::generic_u32string
Ta funkcja jest usuwana w historycznej implementacji MSVC.
u32string generic_u32string() const = delete;
path::generic_u8string
Zwraca wartość u8string() z (w obszarze Windows) dowolny ukośnik odwrotny przekonwertowany na ukośnik do przodu.
string generic_u8string() const;
path::generic_wstring
Zwraca wartość wstring() z (w obszarze 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 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 istnieje
Dla pval obiektu typu path:
path::iterator X = pval.begin()określa pierwszypathelement w ścieżce pathname, jeśli istnieje.X == pval.end()jesttrueto, gdyXpunkty tuż obok końca sekwencji składników.*XZwraca ciąg zgodny z bieżącym składnikiem++Xwyznacza następny składnik w sekwencji, jeśli istnieje.--Xokreśla poprzedni składnik w sekwencji, jeśli istnieje.Zmiana powoduje unieważnienie
mynamewszystkich 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 Windows ciąg ścieżki ogólnej to c:/t/temp.txt , a ciąg natywny to 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=
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);
Parameters
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);
Parameters
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);
Parameters
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);
Parameters
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 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());
Parameters
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);
Parameters
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 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;
Uwagi
Pierwsza funkcja składowa (szablonu) konwertuje sekwencję przechowywaną w myname taki sam sposób jak:
string()dlastring<char, Traits, Alloc>()wstring()dlastring<wchar_t, Traits, Alloc>()u16string()dlastring<char16_t, Traits, Alloc>()
Druga funkcja składowa konwertuje sekwencję przechowywaną w myname 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(myname, right.myname)Wykonuje polecenie .
void swap(path& right) noexcept;
path::u16string
Konwertuje sekwencję przechowywaną na myname UTF-16 i zwraca ją przechowywaną w obiekcie typu u16string.
u16string u16string() const;
path::u32string
Ta funkcja jest usuwana w historycznej implementacji MSVC.
u32string u32string() const = delete;
path::u8string
Konwertuje sekwencję przechowywaną w myname 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 myname pliku na kodowanie preferowane przez system hosta dla wchar_t sekwencji i zwraca ją przechowywaną w obiekcie typu wstring.
wstring wstring() const;
Zobacz także
<experimental/filesystem>
<experimental/filesystem> operatory