SW/C++

C++ : filesystem : 라이브러리 개요, 사용법, 예제, 특징

얇은생각 2020. 4. 15. 07:30
반응형

 

파일시스템

C++17의 새로운 라이브러리입니다.

C++14나 그 전에는 파일 시스템과 같은 구성 요소에 대해 연산할 방법이 존재하지 않았습니다. 이 라이브러리는 파일 읽기와 쓰기에 관한 라이브러리가 아닙니다. 

파일 속성 변경, 디렉터리 순회, 파일 복사 등에 관한 라이브러리라고 생각하면 됩니다. 이 모든 걸 이 라이브러리에서 활용할 수 있습니다.

 

 

 

파일시스템 연산

플랫폼 공통적인 방법으로 경로를 합쳐야 합니다. 또 파일과 디렉터리를 복사, 이름 바꾸기, 삭제 등을 할 수 있어야 합니다. 디렉터리에서 파일, 디렉터리 목록을 가져와야 합니다. 파일 권한 읽기 및 설정, 파일 상태 읽기 및 설정이 가능합니다.

 

#include<filesystem>

namespace fs = std::experimental::filesystem::v1;

int main()
{
  fs::path path1 = "D:\\Lecture";
  fs::path path2 = "examples";
  path1 /= path2;
  // "path1 -> "D:\\Lecture\\examples"
  
  fs::path path3 = "D:\\Lecture";
  fs::path path4 = "examples";
  path3 += path4;
  // path3 -> "D:\\Lectureexamples"
  
  return 0;
}

 

 

 

path 연산자 /

p를 현재 경로의 서브 폴더로 덧붙여줍니다. 리눅스와 윈도우 모두에서 동작합니다. 위 예제 뿐만 아니라 독특한 연산 방식이 있으므로, 아래 페이지를 참조해주세요.

 

https://en.cppreference.com/w/cpp/filesystem/path/append

 

std::filesystem::path::append, std::filesystem::path::operator/= - cppreference.com

path& operator/=(const path& p); (1) (since C++17) template< class Source > path& operator/=( const Source& source ); (2) (since C++17) template< class Source > path& append( const Source& source ); (3) (since C++17) template< class InputIt > path& append(

en.cppreference.com

반응형