다음을 통해 공유


recursive_directory_iterator 클래스

디렉터리의 파일 이름을 통해 순서를 지정하고 하위 디렉터리로 재귀적으로 내림차순으로 내림차순으로 변환하는 입력 반복기를 설명합니다. 반복기의 X경우 식 *X 은 파일 이름과 해당 상태에 대해 알려진 모든 항목을 래핑하는 클래스 directory_entry 의 개체로 평가됩니다.

자세한 내용 및 코드 예제를 보려면 파일 시스템 탐색(C++)을 참조하세요.

구문

class recursive_directory_iterator;

설명

클래스 템플릿은 다음을 저장합니다.

  1. 시퀀스할 디렉터리 중첩을 나타내는 박람회를 위해 여기에 호출 mystack 되는 형식stack<pair<directory_iterator, path>>의 개체입니다.

  2. 디렉터리 시퀀스의 현재 파일 이름을 나타내는 여기서 호출 myentry 된 형식 directory_entry 의 개체입니다.

  3. 하위 디렉터리로의 재귀 하강을 사용할 수 없는지 여부를 기록하는 여기서 호출 no_push 되는 형식bool의 개체입니다.

  4. 생성 시 설정된 옵션을 기록하는 여기서 호출 myoptions 되는 형식directory_options의 개체입니다.

형식 recursive_directory_entry 의 기본 생성된 개체에는 시퀀스 끝 반복기가 mystack.top().first 있으며 시퀀스 끝 반복기를 나타냅니다. 예를 들어 항목 def 이 있는 디렉터리abc(디렉터리) def/ghijkl코드가 지정된 경우:

for (recursive_directory_iterator next(path("abc")), end; next != end; ++next)
    visit(next->path());

는 인수 path("abc/def/ghi") 와 함께 visit를 호출합니다 path("abc/jkl"). 다음 두 가지 방법으로 디렉터리 하위 트리를 통해 시퀀싱을 한정할 수 있습니다.

  1. 디렉터리 symlink는 값을 가진 인수를 recursive_directory_iterator directory_options 생성하는 경우에만 검색됩니다 directory_options::follow_directory_symlink.

  2. 호출 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. 기본 생성자는 예상대로 동작합니다.

참고 항목

헤더 파일 참조
<filesystem>
파일 시스템 탐색(C++)