Share via


directory_iterator 類別

描述可循序遍訪目錄中的檔案名稱的輸入迭代器。 針對反覆運算器 X ,運算式 *X 會評估為類別 directory_entry 的物件,該物件會包裝檔案名及其狀態的任何已知專案。

類別會儲存類型 path 為 的物件, mydir 其用途為說明,代表要排序之目錄的名稱,以及這裡所呼叫 myentry 之類型的 directory_entry 物件,代表目錄序列中的目前檔案名。 類型 directory_entry 的預設建構物件具有空 mydir 的路徑名稱,並代表序列結尾反覆運算器。

例如,假設目錄 abc 具有 專案 defghi ,則程式碼:

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
遞增的數目。

另請參閱

<filesystem>
標頭檔參考
檔案系統巡覽 (C++)