Bagikan melalui


path Kelas

Kelas path menyimpan objek jenis string_type, yang dipanggil myname di sini untuk tujuan eksposisi, cocok untuk digunakan sebagai nama jalur. string_type adalah sinonim untuk basic_string<value_type>, di mana value_type adalah sinonim untuk wchar_t pada Windows atau char di POSIX.

Untuk informasi selengkapnya, dan contoh kode, lihat Navigasi Sistem File (C++).

Sintaks

class path;

Konstruktor

Konstruktor Deskripsi
path Membangun sebuah path.

Typedefs

Nama jenis Deskripsi
const_iterator Sinonim untuk iterator.
iterator Iterator konstanta dua arah yang menunjuk path komponen myname.
string_type Jenisnya adalah sinonim untuk basic_string<value_type>.

Fungsi anggota

Fungsi anggota Deskripsi
append Menambahkan urutan yang ditentukan ke mypath, dikonversi dan menyisipkan preferred_separator sesuai kebutuhan.
assign mypath Mengganti dengan urutan yang ditentukan, dikonversi sesuai kebutuhan.
begin Mengembalikan path::iterator penentuan elemen jalur pertama dalam nama jalur, jika ada.
c_str Mengembalikan penunjuk ke karakter pertama dalam mypath.
clear mypath.clear()Menjalankan .
compare Mengembalikan nilai perbandingan.
concat Menambahkan urutan yang ditentukan ke mypath, dikonversi (tetapi tidak menyisipkan pemisah) sesuai kebutuhan.
empty Menampilkan mypath.empty().
end Mengembalikan iterator akhir urutan dari jenis iterator.
extension Mengembalikan akhiran dari filename().
filename Mengembalikan komponen direktori akar dari myname, khususnya empty() ? path() : *--end(). Komponen mungkin kosong.
generic_string this->string<Elem, Traits, Alloc>(al) Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.
generic_u16string u16string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.
generic_u32string u32string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.
generic_u8string u8string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.
generic_wstring wstring() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.
has_extension Menampilkan !extension().empty().
has_filename Menampilkan !filename().empty().
has_parent_path Menampilkan !parent_path().empty().
has_relative_path Menampilkan !relative_path().empty().
has_root_directory Menampilkan !root_directory().empty().
has_root_name Menampilkan !root_name().empty().
has_root_path Menampilkan !root_path().empty().
has_stem Menampilkan !stem().empty().
is_absolute Untuk Windows, fungsi mengembalikan has_root_name() && has_root_directory(). Untuk POSIX, fungsi mengembalikan has_root_directory().
is_relative Menampilkan !is_absolute().
make_preferred Mengonversi setiap pemisah menjadi preferred_separator sesuai kebutuhan.
native Mengembalikan representasi asli jalur.
parent_path Mengembalikan komponen jalur induk dari myname.
preferred_separator Objek konstan memberikan karakter pilihan untuk memisahkan komponen jalur, tergantung pada sistem operasi host.
relative_path Mengembalikan komponen jalur relatif dari myname.
remove_filename Menghapus nama file.
replace_extension Menggantikan ekstensi .myname
replace_filename Menggantikan nama file.
root_directory Mengembalikan komponen direktori akar dari myname.
root_name Mengembalikan komponen nama akar dari myname.
root_path Mengembalikan komponen jalur akar dari myname.
stem Mengembalikan stem komponen dari myname.
string Mengonversi urutan yang disimpan dalam mypath.
swap swap(mypath, right.mypath)Menjalankan .
u16string Mengonversi urutan yang disimpan ke mypath UTF-16 dan mengembalikannya disimpan dalam objek jenis u16string.
u32string Mengonversi urutan yang disimpan ke mypath UTF-32 dan mengembalikannya disimpan dalam objek jenis u32string.
u8string Mengonversi urutan yang disimpan ke mypath UTF-8 dan mengembalikannya disimpan dalam objek jenis u8string.
value_type Jenis ini menjelaskan elemen jalur yang disukai oleh sistem operasi host.
wstring Mengonversi urutan yang disimpan ke mypath pengodean yang disukai oleh sistem host untuk wchar_t urutan dan mengembalikannya disimpan dalam objek jenis wstring.

Operator

Operator Deskripsi
operator= Mengganti elemen jalur dengan salinan jalur lain.
operator+= Berbagai concat ekspresi.
operator/= Berbagai append ekspresi.
operator string_type Menampilkan myname.

Persyaratan

Header: <filesystem>

kumpulan nama XML: std::experimental::filesystem

path::append

Menambahkan urutan yang ditentukan ke mypath, dikonversi dan menyisipkan preferred_separator sesuai kebutuhan.

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

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

Parameter

source
Urutan yang ditentukan.

first
Awal urutan yang ditentukan.

last
Akhir dari urutan yang ditentukan.

path::assign

mypath Mengganti dengan urutan yang ditentukan, dikonversi sesuai kebutuhan.

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

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

Parameter

source
Urutan yang ditentukan.

first
Awal urutan yang ditentukan.

last
Akhir dari urutan yang ditentukan.

path::begin

Mengembalikan path::iterator penentuan elemen jalur pertama dalam nama jalur, jika ada.

iterator begin() const;

path::c_str

Mengembalikan penunjuk ke karakter pertama dalam mypath.

const value_type& *c_str() const noexcept;

path::clear

mypath.clear()Menjalankan .

void clear() noexcept;

path::compare

Fungsi pertama mengembalikan mypath.compare(pval.native()). Fungsi kedua mengembalikan mypath.compare(str). Fungsi ketiga mengembalikan 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
Jalur untuk dibandingkan.

str
String untuk dibandingkan.

ptr
Penunjuk untuk dibandingkan.

path::concat

Menambahkan urutan yang ditentukan ke mypath, dikonversi (tetapi tidak menyisipkan pemisah) sesuai kebutuhan.

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

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

Parameter

source
Urutan yang ditentukan.

first
Awal urutan yang ditentukan.

last
Akhir dari urutan yang ditentukan.

path::const_iterator

Sinonim untuk iterator.

typedef iterator const_iterator;

path::empty

Menampilkan mypath.empty().

bool empty() const noexcept;

path::end

Mengembalikan iterator akhir urutan dari jenis iterator.

iterator end() const;

path::extension

Mengembalikan akhiran dari filename().

path extension() const;

Keterangan

Mengembalikan akhiran seperti filename() X itu:

Jika X == path(".") || X == path("..") atau jika X tidak berisi titik, akhiran kosong.

Jika tidak, akhiran dimulai dengan (dan mencakup) titik paling kanan.

path::filename

Mengembalikan komponen direktori akar dari myname, khususnya empty() path() : *--end(). Komponen mungkin kosong.

path filename() const;

path::generic_string

this->string<Elem, Traits, Alloc>(al) Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.

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

u16string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.

u16string generic_u16string() const;

path::generic_u32string

u32string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.

u32string generic_u32string() const;

path::generic_u8string

u8string() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.

string generic_u8string() const;

path::generic_wstring

wstring() Mengembalikan dengan (di bawah Windows) garis miring terbelakang apa pun yang dikonversi menjadi garis miring.

wstring generic_wstring() const;

path::has_extension

Menampilkan !extension().empty().

bool has_extension() const;

path::has_filename

Menampilkan !filename().empty().

bool has_filename() const;

path::has_parent_path

Menampilkan !parent_path().empty().

bool has_parent_path() const;

path::has_relative_path

Menampilkan !relative_path().empty().

bool has_relative_path() const;

path::has_root_directory

Menampilkan !root_directory().empty().

bool has_root_directory() const;

path::has_root_name

Menampilkan !root_name().empty().

bool has_root_name() const;

path::has_root_path

Menampilkan !root_path().empty().

bool has_root_path() const;

path::has_stem

Menampilkan !stem().empty().

bool has_stem() const;

path::is_absolute

Untuk Windows, fungsi mengembalikan has_root_name() && has_root_directory(). Untuk POSIX, fungsi mengembalikan has_root_directory().

bool is_absolute() const;

path::is_relative

Menampilkan !is_absolute().

bool is_relative() const;

path::iterator

Iterator konstanta dua arah yang menunjuk komponen jalur .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;
   // ...
   };

Keterangan

Kelas ini menjelaskan iterator konstanta dua arah yang menunjuk path komponen myname dalam urutan:

  1. nama akar, jika ada

  2. direktori akar, jika ada

  3. elemen direktori yang tersisa dari induk path, jika ada, berakhir dengan nama file, jika ada

Untuk pval objek jenis path:

  1. path::iterator X = pval.begin() menunjuk elemen pertama path dalam nama jalur, jika ada.

  2. X == pval.end() adalah true ketika X titik baru saja melewati akhir urutan komponen.

  3. *X mengembalikan string yang cocok dengan komponen saat ini

  4. ++X menunjuk komponen berikutnya dalam urutan, jika ada.

  5. --X menunjuk komponen sebelumnya dalam urutan, jika ada.

  6. Mengubah myname membatalkan semua iterator yang menunjuk elemen di myname.

path::make_preferred

Mengonversi setiap pemisah menjadi preferred_separator sesuai kebutuhan.

path& make_preferred();

path::native

Dapatkan representasi string asli jalur.

const string_type& native() const noexcept;

Keterangan

Jalur tersedia dalam format generik portabel (lihat generic_string()) atau format asli jalur. Fungsi ini mengembalikan string asli. Pada sistem POSIX, format generik dan format aslinya sama.

Dalam contoh berikut yang berjalan pada Windows 11, string jalur generik adalah c:/t/temp/temp.txt dan string aslinya adalah 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=

Mengganti elemen jalur dengan salinan jalur lain.

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

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

Parameter

right
yang path sedang disalin ke pathdalam .

source
Sumber path.

Keterangan

Operator anggota pertama menyalin right.myname ke myname. Operator anggota kedua berpindah right.myname ke myname. Operator anggota ketiga berulah sama dengan *this = path(source).

path::operator+=

Berbagai concat ekspresi.

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
Jalur yang ditambahkan.

str
String yang ditambahkan.

ptr
Penunjuk yang ditambahkan.

elem
Ditambahkan value_type atau Elem.

source
Sumber yang ditambahkan.

Keterangan

Fungsi anggota berulah sama dengan ekspresi terkait berikut:

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

Berbagai append ekspresi.

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

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

Parameter

right
Jalur yang ditambahkan.

source
Sumber yang ditambahkan.

Keterangan

Fungsi anggota berulah sama dengan ekspresi terkait berikut:

  1. append(right);

  2. append(source);

path::operator string_type

Menampilkan myname.

operator string_type() const;

path::parent_path

Mengembalikan komponen jalur induk dari myname.

path parent_path() const;

Keterangan

Mengembalikan komponen mynamejalur induk , khususnya awalan myname setelah dihapus filename().native() dan pemisah direktori sebelumnya segera. (Sama halnya, jika begin() != end(), itu adalah gabungan dari semua elemen dalam rentang [begin(), --end()) dengan secara berturut-turut menerapkan operator/=.) Komponen mungkin kosong.

path::path

Membangun dengan path berbagai cara.

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
Jalur di mana jalur yang dibangun akan menjadi salinan.

source
Sumber jalur yang dibangun akan menjadi salinan.

loc
Lokal yang ditentukan.

first
Posisi elemen pertama yang akan disalin.

last
Posisi elemen terakhir yang akan disalin.

Keterangan

Semua konstruktor membangun myname dengan berbagai cara:

Untuk path() itu myname()adalah .

Untuk path(const path& right) itu myname(right.myname)adalah .

Untuk path(path&& right) itu myname(right.myname)adalah .

Untuk template<class Source> path(const Source& source) itu myname(source)adalah .

Untuk template<class Source> path(const Source& source, const locale& loc) itu myname(source), mendapatkan faset yang diperlukan codecvt dari loc.

Untuk template<class InIt> path(InIt first, InIt last) itu myname(first, last)adalah .

Untuk template<class InIt> path(InIt first, InIt last, const locale& loc) itu myname(first, last), mendapatkan faset yang diperlukan codecvt dari loc.

path::preferred_separator

Objek konstan memberikan karakter pilihan untuk memisahkan komponen jalur, tergantung pada sistem operasi host.

#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

Keterangan

Ini sama-sama diizinkan dalam sebagian besar konteks di bawah Windows untuk digunakan L'/' di tempatnya.

path::relative_path

Mengembalikan komponen jalur relatif dari myname.

path relative_path() const;

Keterangan

Mengembalikan komponen mynamejalur relatif , khususnya akhiran myname setelah dihapus root_path().native() dan pemisah direktori redundan berikutnya segera. Komponen mungkin kosong.

path::remove_filename

Menghapus nama file.

path& remove_filename();

path::replace_extension

Menggantikan ekstensi .myname

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

Parameter

newext
Ekstensi baru.

Keterangan

Pertama-tama hapus akhiran extension().native() dari myname. Kemudian jika !newext.empty() && newext[0] != dot (di mana titik berada *path(".").c_str()), maka titik ditambahkan ke myname. Kemudian newext ditambahkan ke myname.

path::replace_filename

Menggantikan nama file.

path& replace_filename(const path& pval);

Parameter

pval
Jalur nama file.

Keterangan

Fungsi anggota menjalankan:

remove_filename();

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

path::root_directory

Mengembalikan komponen direktori akar dari myname.

path root_directory() const;

Keterangan

Komponen mungkin kosong.

path::root_name

Mengembalikan komponen nama akar dari myname.

path root_name() const;

Keterangan

Komponen mungkin kosong.

path::root_path

Mengembalikan komponen jalur akar dari myname.

path root_path() const;

Keterangan

Mengembalikan komponen jalur akar dari myname, khususnya / root_name()root_directory . Komponen mungkin kosong.

path::stem

Mengembalikan stem komponen dari myname.

path stem() const;

Keterangan

Mengembalikan stem komponen myname, khususnya filename().native() dengan trailing extension().native() yang dihapus. Komponen mungkin kosong.

path::string

Mengonversi urutan yang disimpan dalam 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;

Keterangan

Fungsi anggota (templat) pertama mengonversi urutan yang disimpan mypath dengan cara yang sama seperti:

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

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

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

  4. u32string() untuk string<char32_t, Traits, Alloc>()

Fungsi anggota kedua mengonversi urutan yang disimpan ke pengodean yang disukai mypath oleh sistem host untuk char urutan dan mengembalikannya disimpan dalam objek jenis string.

path::string_type

Jenisnya adalah sinonim untuk basic_string<value_type>.

typedef basic_string<value_type> string_type;

path::swap

swap(mypath, right.mypath)Menjalankan .

void swap(path& right) noexcept;

path::u16string

Mengonversi urutan yang disimpan ke mypath UTF-16 dan mengembalikannya disimpan dalam objek jenis u16string.

u16string u16string() const;

path::u32string

Mengonversi urutan yang disimpan ke mypath UTF-32 dan mengembalikannya disimpan dalam objek jenis u32string.

u32string u32string() const;

path::u8string

Mengonversi urutan yang disimpan ke mypath UTF-8 dan mengembalikannya disimpan dalam objek jenis u8string.

string u8string() const;

path::value_type

Jenis ini menjelaskan elemen yang path disukai oleh sistem operasi host.

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

path::wstring

Mengonversi urutan yang disimpan ke mypath pengodean yang disukai oleh sistem host untuk wchar_t urutan dan mengembalikannya disimpan dalam objek jenis wstring.

wstring wstring() const;

Lihat juga

Referensi File Header