std::experimental::filesystem:: directory_iterator
|
헤더 파일에 정의됨
<experimental/filesystem>
|
||
|
class
directory_iterator
;
|
(filesystem TS) | |
directory_iterator
는 디렉토리의
LegacyInputIterator
로서 디렉토리의
directory_entry
요소들을 순회합니다(하위 디렉토리는 방문하지 않음). 순회 순서는 명시되지 않으나, 각 디렉토리 엔트리는 한 번만 방문됩니다. 특수 경로명인
dot
과
dot-dot
은 생략됩니다.
만약
directory_iterator
가 마지막 디렉토리 엔트리를 지나 진행되면, 기본 생성된 반복자(종료 반복자라고도 함)와 동일하게 됩니다. 두 개의 종료 반복자는 항상 동일하며, 종료 반복자를 역참조하거나 증가시키는 것은 정의되지 않은 동작입니다.
디렉터리 이터레이터가 생성된 후 디렉터리 트리에서 파일이나 디렉터리가 삭제되거나 추가된 경우, 해당 변경 사항이 이터레이터를 통해 관찰될지 여부는 명시되어 있지 않습니다.
목차 |
멤버 타입
| 멤버 타입 | 정의 |
value_type
|
filesystem::directory_entry
|
difference_type
|
std::ptrdiff_t
|
pointer
|
const filesystem::directory_entry*
|
reference
|
const filesystem::directory_entry&
|
iterator_category
|
std::input_iterator_tag
|
멤버 함수
|
디렉터리 반복자를 생성합니다
(public member function) |
|
|
(destructor)
|
기본 소멸자
(public member function) |
|
내용을 할당합니다
(public member function) |
|
|
가리키는 항목에 접근합니다
(public member function) |
|
|
다음 항목으로 이동합니다
(public member function) |
비멤버 함수
|
범위 기반 for 루프 지원
(함수) |
추가적으로, operator == 와 operator ! = 가 LegacyInputIterator 요구사항에 따라 멤버 또는 비멤버 형태로 제공됩니다.
예제
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directories("sandbox/a/b"); std::ofstream{"sandbox/file1.txt"}; std::ofstream{"sandbox/file2.txt"}; for (const fs::directory_entry& entry : fs::directory_iterator{"sandbox"}) std::cout << entry << '\n'; fs::remove_all("sandbox"); }
가능한 출력:
"sandbox/a" "sandbox/file1.txt" "sandbox/file2.txt"
참고 항목
|
디렉터리와 그 하위 디렉터리의 내용에 대한 반복자
(클래스) |
|
|
디렉터리 내용 반복을 위한 옵션
(열거형) |
|
|
디렉터리 항목
(클래스) |