C++17에서 추가된 <filesystem>라이브러리를 이용하면 파일 시스템을 읽어올 수 있다.
원래 boost에 있던건데 정식으로 추가됐다.
사용법:
#include <experimental/filesystem>
namespace std::experimental::filesystem;
g++ main.cpp -lstdc++fs
gcc 8버전 이상부터는 experimental을 빼고 그냥 #include <filesystem>하면 된다.
폴더 내 모든 폴더명/ 파일명을 긁어오는 예제
for(auto& p: fs::recursive_directory_iterator(path))
{
cout << p << endl; //결과: root/dir1/text.txt
cout << p.path().filename() << endl; //결과: "test.txt"
cout << p.path().filename().string() << endl; //결과: test.txt
}
참고
https://en.cppreference.com/w/cpp/filesystem
https://docs.microsoft.com/ko-kr/cpp/standard-library/filesystem?view=vs-2019
[C++ reference :: directory_iterator]
https://stackoverflow.com/questions/39231363/fatal-error-filesystem-no-such-file-or-directory
https://stackoverflow.com/questions/33149878/experimentalfilesystem-linker-error
'Study > C,C++' 카테고리의 다른 글
priority_queue에 struct를 넣을 때는 연산자 오버로딩이 필요하다 (0) | 2020.07.09 |
---|---|
memset으로 bool값을 true로 설정해도 될까? (0) | 2020.05.04 |
헤더파일에 using namespace를 하지 말아야 하는 이유 (0) | 2019.10.18 |
[Error]undefined reference to ~ 해결법 (0) | 2019.10.07 |
C/C++에서 다른 프로그램 실행하기 (0) | 2019.09.28 |