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_iterator
dalam .
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_iterator
dengan .
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++)