Namespaces
Variants

std::experimental::filesystem:: directory_iterator

From cppreference.net
헤더 파일에 정의됨 <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"

참고 항목

디렉터리와 그 하위 디렉터리의 내용에 대한 반복자
(클래스)
디렉터리 내용 반복을 위한 옵션
(열거형)
디렉터리 항목
(클래스)