directory_iterator
類別
描述可循序遍訪目錄中的檔案名稱的輸入迭代器。 針對反覆運算器 X
,表達式 *X
會評估為類別 directory_entry
的物件,該物件會包裝檔名及其狀態的任何已知專案。
類別會儲存類型 path
為的物件,mydir
其用途為說明,代表要排序之目錄的名稱,以及這裡所呼叫myentry
之類型的 directory_entry
物件,代表目錄序列中的目前檔名。 類型 directory_entry
的預設建構物件具有空 mydir
的路徑名稱,並代表序列結尾反覆運算器。
例如,假設目錄 abc
具有 專案 def
和 ghi
,則程式代碼:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
使用 自變數path("abc/def")
與path("abc/ghi")
來呼叫 visit
。
如需詳細資訊與程式碼範例,請參閱檔案系統巡覽 (C++)。
語法
class directory_iterator;
建構函式
建構函式 | 描述 |
---|---|
directory_iterator |
建構輸入反覆運算器,以排序目錄中的檔名。 |
成員函式
成員函數 | 描述 |
---|---|
increment |
嘗試前進到目錄中的下一個檔名。 |
操作員
運算子 | 描述 |
---|---|
operator!= |
傳回 !(*this == right) 。 |
operator= |
預設成員指派運算子會如預期般運作。 |
operator== |
true 只有在 和 right 都是*this 序列結尾反覆運算器,或兩者都不是序列反覆運算器的結尾時,才會傳回 。 |
operator* |
傳回 myentry 。 |
operator-> |
傳回 &**this 。 |
operator++ |
呼叫 increment() ,然後傳 *this 回 ,或建立 對象的複本,呼叫 increment() ,然後傳回復本。 |
需求
標頭: <filesystem>
命名空間:std::filesystem
directory_iterator::directory_iterator
第一個建構函式會產生序列結尾迭代器。 第二個和第三個建構函式會儲存 pval
在 中 mydir
,然後嘗試開啟並讀取 mydir
為目錄。 如果成功,它們會將第一個檔名儲存在目錄中 myentry
;否則會產生序列結尾反覆運算器。
默認建構函式的行為會如預期般運作。
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;
參數
pval
預存檔名路徑。
ec
狀態錯誤碼。
directory_iterator
預存物件。
directory_iterator::increment
此函式會嘗試前進到目錄中的下一個檔案名稱。 如果成功,它會將該檔名儲存在 中 myentry
,否則會產生序列結尾反覆運算器。
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
此成員運算子會傳回 !(*this == right)
。
bool operator!=(const directory_iterator& right) const;
參數
right
directory_iterator
比較的 directory_iterator
。
directory_iterator::operator=
預設成員指派運算子會如預期般運作。
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
參數
right
directory_iterator
要複製到 的 directory_iterator
。
directory_iterator::operator==
只有當 和 right
都是*this
序列結尾反覆運算器,或兩者都不是序列反覆運算器結尾時,成員運算子才會傳回 true
。
bool operator==(const directory_iterator& right) const;
參數
right
與比較directory_iterator
directory_iterator。
directory_iterator::operator*
此成員運算子會傳回 myentry
。
const directory_entry& operator*() const;
directory_iterator::operator->
此成員函式會傳回 &**this
。
const directory_entry * operator->() const;
directory_iterator::operator++
第一個成員函式會呼叫 increment()
,然後傳 *this
回 。 第二個成員函式會建立 對象的複本,呼叫 increment()
,然後傳回復本。
directory_iterator& operator++();
directory_iterator& operator++(int);
參數
int
遞增的數目。