Bagikan melalui


directory_iterator kelas

Menjelaskan iterator input yang berurutan melalui nama file dalam direktori. Untuk iterator X, ekspresi *X mengevaluasi ke objek kelas directory_entry yang membungkus nama file dan apa pun yang diketahui tentang statusnya.

Kelas menyimpan objek jenis path, yang dipanggil mydir di sini untuk tujuan eksposisi, yang mewakili nama direktori yang akan diurutkan, dan objek jenis directory_entry yang disebut myentry di sini, yang mewakili nama file saat ini dalam urutan direktori. Objek jenis directory_entry default yang dibangun memiliki nama jalur kosong mydir dan mewakili iterator akhir urutan.

Misalnya, mengingat direktori abc dengan entri def dan ghi, kode:

for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());

visit panggilan dengan argumen path("abc/def") dan path("abc/ghi").

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

Sintaks

class directory_iterator;

Konstruktor

Konstruktor Deskripsi
directory_iterator Membuat iterator input yang mengurutkan melalui nama file dalam direktori.

Fungsi anggota

Fungsi anggota Deskripsi
increment Mencoba untuk melanjutkan ke nama file berikutnya di direktori.

Operator

Operator Deskripsi
operator!= Menampilkan !(*this == right).
operator= Operator penetapan anggota default berulah seperti yang diharapkan.
operator== true Mengembalikan hanya jika dan *this right merupakan iterator akhir urutan atau keduanya bukan end-of-sequence-iterators.
operator* Menampilkan myentry.
operator-> Menampilkan &**this.
operator++ increment()Memanggil , lalu mengembalikan *this, atau membuat salinan objek, memanggil increment(), lalu mengembalikan salinan.

Persyaratan

Header: <filesystem>

kumpulan nama XML: std::filesystem

directory_iterator::directory_iterator

Konstruktor pertama menghasilkan iterator akhir urutan. Konstruktor kedua dan ketiga menyimpan pval di mydir, lalu mencoba membuka dan membaca mydir sebagai direktori. Jika berhasil, mereka menyimpan nama file pertama di direktori di myentry; jika tidak, mereka menghasilkan iterator akhir urutan.

Konstruktor default berperilaku seperti yang diharapkan.

directory_iterator() noexcept;
explicit directory_iterator(const path& pval);

directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;

Parameter

pval
Jalur nama file tersimpan.

ec
Kode kesalahan status.

directory_iterator
Objek tersimpan.

directory_iterator::increment

Fungsi ini mencoba untuk maju ke nama file berikutnya di direktori. Jika berhasil, ia menyimpan nama file tersebut di myentry; jika tidak, ia menghasilkan iterator akhir urutan.

directory_iterator& increment(error_code& ec) noexcept;

directory_iterator::operator!=

Operator anggota mengembalikan !(*this == right).

bool operator!=(const directory_iterator& right) const;

Parameter

right
Dibandingkan directory_iterator dengan directory_iterator.

directory_iterator::operator=

Operator penetapan anggota default berulah seperti yang diharapkan.

directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;

Parameter

right
yang directory_iterator sedang disalin ke directory_iteratordalam .

directory_iterator::operator==

Operator anggota hanya mengembalikan true jika keduanya *this dan right merupakan iterator akhir urutan atau keduanya bukan end-of-sequence-iterator.

bool operator==(const directory_iterator& right) const;

Parameter

right
directory_iterator dibandingkan directory_iteratordengan .

directory_iterator::operator*

Operator anggota mengembalikan myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

Fungsi anggota mengembalikan &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

Fungsi anggota pertama memanggil increment(), lalu mengembalikan *this. Fungsi anggota kedua membuat salinan objek, memanggil increment(), lalu mengembalikan salinan.

directory_iterator& operator++();
directory_iterator& operator++(int);

Parameter

int
Jumlah kenaikan.

Lihat juga

<filesystem>
Referensi File Header
Navigasi Sistem File (C++)