[C++] 디렉터리 읽기
원래 C++에서 디렉터리의 내용물을 읽으려면 라이브러리를 땡겨써야했지만,
C++17부터는 그럴 필요가 없어졌다.
파일 처리와 관련된 내용은 이제 filesystem 헤더에서 전부 지원해준다.
아래 코드는 실행 파일의 현재 디렉터리와 데스크탑의 내용물을 전부 출력해준다.
directory_iterator에 경로를 넣어서 생성해주면 그 디렉터리 내용물들에 대한 반복자가 생성된다.
그리고 이 반복자는 directory_entry를 반환하는데, 또 그 파일명을 꺼내려면 path 메서드를 쓰면 된다.
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
//현재 실행 경로에 대한 반복자
auto iter = fs::directory_iterator("");
std::cout << "현재 위치" << std::endl;
for (auto& e : iter)
std::cout << e.path() << std::endl; //패스 출력
//바탕화면의 반복자
auto iter2 = fs::directory_iterator("C:/Users/sssan/Desktop");
std::cout << std::endl << "데스크탑" << std::endl;
for (auto& e : iter2)
std::cout << e.path() << std::endl;
}
잘 된다.