recursive_directory_iterator 클래스
디렉터리의 파일 이름을 통해 순서를 지정하고 하위 디렉터리로 재귀적으로 내림차순으로 내림차순으로 변환하는 입력 반복기를 설명합니다. 반복기의 X
경우 식 *X
은 파일 이름과 해당 상태에 대해 알려진 모든 항목을 래핑하는 클래스 directory_entry
의 개체로 평가됩니다.
자세한 내용 및 코드 예제를 보려면 파일 시스템 탐색(C++)을 참조하세요.
구문
class recursive_directory_iterator;
설명
클래스 템플릿은 다음을 저장합니다.
시퀀스할 디렉터리 중첩을 나타내는 박람회를 위해 여기에 호출
mystack
되는 형식stack<pair<directory_iterator, path>>
의 개체입니다.디렉터리 시퀀스의 현재 파일 이름을 나타내는 여기서 호출
myentry
된 형식directory_entry
의 개체입니다.하위 디렉터리로의 재귀 하강을 사용할 수 없는지 여부를 기록하는 여기서 호출
no_push
되는 형식bool
의 개체입니다.생성 시 설정된 옵션을 기록하는 여기서 호출
myoptions
되는 형식directory_options
의 개체입니다.
형식 recursive_directory_entry
의 기본 생성된 개체에는 시퀀스 끝 반복기가 mystack.top().first
있으며 시퀀스 끝 반복기를 나타냅니다. 예를 들어 항목 def
이 있는 디렉터리abc
(디렉터리) def/ghi
및 jkl
코드가 지정된 경우:
for (recursive_directory_iterator next(path("abc")), end; next != end; ++next)
visit(next->path());
는 인수 path("abc/def/ghi")
와 함께 visit를 호출합니다 path("abc/jkl")
. 다음 두 가지 방법으로 디렉터리 하위 트리를 통해 시퀀싱을 한정할 수 있습니다.
디렉터리 symlink는 값을 가진 인수를
recursive_directory_iterator
directory_options
생성하는 경우에만 검색됩니다directory_options::follow_directory_symlink
.호출
disable_recursion_pending
하는 경우 증분 중에 발생한 후속 디렉터리는 재귀적으로 검색되지 않습니다.
생성자
생성자 | Description |
---|---|
recursive_directory_iterator | recursive_directory_iterator 를 생성합니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
depth | 깊이가 0이므로 pval 반환mystack.size() - 1 합니다. |
disable_recursion_pending | 에 저장합니다true .no_push |
increment | 순서대로 다음 파일 이름으로 진행합니다. |
options | myoptions 을(를) 반환합니다. |
pop | 다음 개체를 반환합니다. |
recursion_pending | !no_push 을(를) 반환합니다. |
연산자
연산자 | 설명 |
---|---|
operator!= | !(*this == right) 을(를) 반환합니다. |
operator= | 기본 멤버 대입 연산자가 예상대로 작동합니다. |
연산자== | true 시퀀스 끝 반복기이거나 둘 *this 다 시퀀스 끝 반복기가 아닌 경우에만 반환합니다. |
operator* | myentry 을(를) 반환합니다. |
operator-> | &**this 을(를) 반환합니다. |
operator++ | 를 증분합니다 recursive_directory_iterator . |
요구 사항
헤더:<파일 시스템>
네임스페이스: std::tr2::sys
recursive_directory_iterator::depth
깊이가 0이므로 pval
반환mystack.size() - 1
합니다.
int depth() const;
recursive_directory_iterator::disable_recursion_pending
에 저장합니다true
.no_push
void disable_recursion_pending();
recursive_directory_iterator::increment
순서대로 다음 파일 이름으로 진행합니다.
recursive_directory_iterator& increment(error_code& ec) noexcept;
매개 변수
ec
지정된 오류 코드입니다.
설명
함수가 중첩된 시퀀스에서 다음 파일 이름으로 이동하려고 합니다. 성공하면 해당 파일 이름을 myentry
저장하고, 그렇지 않으면 시퀀스 끝 반복기를 생성합니다.
recursive_directory_iterator::operator!=
!(*this == right)
을(를) 반환합니다.
bool operator!=(const recursive_directory_iterator& right) const;
매개 변수
right
비교를 위한 recursive_directory_iterator.
recursive_directory_iterator::operator=
기본 멤버 대입 연산자가 예상대로 작동합니다.
recursive_directory_iterator& operator=(const recursive_directory_iterator&) = default;
recursive_directory_iterator& operator=(recursive_directory_iterator&&) noexcept = default;
매개 변수
recursive_directory_iterator
recursive_directory_iterator
에 복사되는 recursive_directory_iterator입니다.
recursive_directory_iterator::operator==
true
시퀀스 끝 반복기이거나 둘 *this
다 시퀀스 끝 반복기가 아닌 경우에만 반환합니다.
bool operator==(const recursive_directory_iterator& right) const;
매개 변수
right
비교를 위한 recursive_directory_iterator.
recursive_directory_iterator::operator*
myentry
을(를) 반환합니다.
const directory_entry& operator*() const;
recursive_directory_iterator::operator->
&**this
을(를) 반환합니다.
const directory_entry * operator->() const;
recursive_directory_iterator::operator++
를 증분합니다 recursive_directory_iterator
.
recursive_directory_iterator& operator++();
recursive_directory_iterator& operator++(int);
매개 변수
int
지정된 증분입니다.
설명
첫 번째 멤버 함수가 호출 increment()
한 다음, .를 반환합니다 *this
. 두 번째 멤버 함수는 개체의 복사본을 만들고 호출 increment()
한 다음 복사본을 반환합니다.
recursive_directory_iterator::options
myoptions
을(를) 반환합니다.
directory_options options() const;
recursive_directory_iterator::pop
다음 개체를 반환합니다.
void pop();
설명
개체가 시퀀스 끝 반복기가 되는 경우 depth() == 0
그렇지 않은 경우 멤버 함수는 현재(최하위) 디렉터리 검색을 종료하고 다음으로 낮은 깊이에서 다시 시작합니다.
recursive_directory_iterator::recursion_pending
!no_push
을(를) 반환합니다.
bool recursion_pending() const;
recursive_directory_iterator::recursive_directory_iterator
recursive_directory_iterator
를 생성합니다.
recursive_directory_iterator() noexcept;
explicit recursive_directory_iterator(const path& pval);
recursive_directory_iterator(const path& pval,
error_code& ec) noexcept;
recursive_directory_iterator(const path& pval,
directory_options opts);
recursive_directory_iterator(const path& pval,
directory_options opts,
error_code& ec) noexcept;
recursive_directory_iterator(const recursive_directory_iterator&) = default;
recursive_directory_iterator(recursive_directory_iterator&&) noexcept = default;
매개 변수
pval
지정된 경로입니다.
error_code
지정한 오류 코드입니다.
opts
지정된 디렉터리 옵션입니다.
recursive_directory_iterator
생성된 recursive_directory_iterator
이 복사본으로 지정될 recursive_directory_iterator
입니다.
설명
첫 번째 생성자는 시퀀스의 끝 반복기를 생성합니다. 두 번째 및 세 번째 생성자는 false
no_push
저장한 directory_options::none
myoptions
다음 pval을 디렉터리로 열고 읽으려고 시도합니다. 성공하면 중첩된 시퀀스에서 첫 번째 비 디렉터리 파일 이름을 초기화 mystack
하고 myentry
지정합니다. 그렇지 않으면 시퀀스 끝 반복기를 생성합니다.
네 번째 및 다섯 번째 생성자는 옵트인(opt in)을 처음 저장한다는 점을 제외하고 두 번째 및 세 번째 생성자와 동일하게 동작합니다myoptions
. 기본 생성자는 예상대로 동작합니다.