원래는 boost에 있는 API이고, C++ 17에서 표준으로 추가되었기 때문에, boost를 추가하거나 컴파일러를 C++17로 변경해야 한다.

후자가 더 편하기 때문에, 프로젝트 설정 - C/C++ - Language - C++ Language Standard를 `` /std:c++17``로 변경해준다.


```cpp

#include <iostream>

#include <filesystem>

namespace fs = std::filesystem;

using namespace std;


int main(int argc, char **argv)

{

    for (auto& p : fs::recursive_directory_iterator(root_path)) {

        /* .path() 메서드가 다시 path 객체를 리턴하기 때문에 

         C style의 입출력을 사용하지 못함. << operator를 사용해야 한다.*/

        printf("[%d] ", p.is_directory());

        cout << p.path() << ' ' << p.file_size() << " Byte\n";


        // C style의 입출력을 사용하려면 다음과 같이 하면 된다.

        printf("%s\n", p.path().string().c_str());

    }

    return 0;

}

```