Namespaces
Variants

std::filesystem::directory_iterator:: directory_iterator

From cppreference.net
directory_iterator ( ) noexcept ;
(1) (C++17부터)
explicit directory_iterator ( const std:: filesystem :: path & p ) ;
(2) (C++17부터)
(3) (C++17부터)
directory_iterator ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(4) (C++17부터)
(5) (C++17부터)
directory_iterator ( const directory_iterator & other ) = default ;
(6) (C++17부터)
directory_iterator ( directory_iterator && other ) = default ;
(7) (C++17부터)

새로운 디렉터리 반복자를 생성합니다.

1) 끝 반복자를 생성합니다.
2) 디렉토리 반복자를 생성하며, 이는 p 로 식별된 디렉토리의 첫 번째 디렉토리 항목을 참조합니다. 만약 p 가 존재하지 않는 파일이나 디렉토리가 아닌 것을 참조할 경우, std::filesystem::filesystem_error 를 throw합니다.
3) (2) 와 동일하지만, options std::filesystem::directory_options::skip_permission_denied 가 설정되어 있고 생성 과정에서 권한 거부 오류가 발생하는 경우, 끝 반복자를 생성하고 오류를 보고하지 않습니다.
4) p 로 식별되는 디렉터리의 첫 번째 디렉터리 엔트리를 참조하는 디렉터리 반복자를 생성합니다. p 가 존재하지 않는 파일이나 디렉터리가 아닌 것을 참조할 경우, 종료 반복자를 반환하고 ec 를 설정합니다.
5) (4) 와 동일하지만, options 에서 std::filesystem::directory_options::skip_permission_denied 가 설정되어 있고 생성 과정에서 권한 거부 오류가 발생하는 경우, end iterator를 생성하고 오류를 보고하지 않습니다.
6) 복사 생성자.
7) 이동 생성자.

목차

매개변수

p - 디렉터리 반복자가 참조할 파일 시스템 객체의 경로
ec - 비예외 발생 오버로드에서 오류 보고를 위한 출력 매개변수
options - 디렉터리 반복자의 동작을 제어하는 BitmaskType 옵션 집합
other - 디렉터리 반복자를 초기화하는 데 사용할 소스로서의 다른 디렉터리 반복자

예외

noexcept 로 표시되지 않은 모든 오버로드는 메모리 할당이 실패할 경우 std::bad_alloc 을(를) throw할 수 있습니다.

2,3) 기본 OS API 오류 발생 시 std::filesystem::filesystem_error 를 발생시킵니다. 이는 p 를 첫 번째 경로 인수로, OS 오류 코드를 오류 코드 인수로 구성되어 생성됩니다.
4,5) OS API 호출이 실패할 경우 std:: error_code & 매개변수를 OS API 오류 코드로 설정하고, 오류가 발생하지 않을 경우 ec. clear ( ) 를 실행합니다.

참고 사항

현재 디렉터리를 순회하려면 이터레이터를 directory_iterator ( "." ) 로 생성하고, directory_iterator ( "" ) 는 사용하지 마십시오.

예제

결함 보고서

다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3013 C++17 error_code 오버로드가 noexcept로 표시되었으나 메모리를 할당할 수 있음 noexcept 제거됨