C++17의 새로운 라이브러리다.
C++14 이전에는 파일 시스템과 다음과 같은 구성요소에 대하여 연산을 할 방법이 없었다.
-> 경로, 일반 파일, 디렉터리
파일 시스템은 파일 읽기와 쓰기에 관한 라이브러리가 아니다.
파일 속성 변경, 디렉터리 순회, 파일 복사 등에 관한 라이브러리다.
이 모든걸 std::fs로 할 수 있다.
컴파일러에 따라 std::filesystem 네임스페이스 대신 std::experimental::filesystem::v1을 사용해야 될 수도 있다.
파일 시스템 연산
1. 플랫폼 공통적인 방법으로 경로 합치기
2. 파일과 디렉터리 복사, 이름바꾸기, 삭제
3. 디렉터리에서 파일, 디렉터리 목록 가져오기
4. 파일 권한 읽기 및 설정
5. 파일 상태 읽기 및 설정
std::filesystem::path::operator/=
-> path& operator/=(const path& p);
p를 현재 경로의 서브폴더로 덧붙인다.(리눅스, 윈도우 모두 작동가능)
파일, 디렉터리 복사
fs::copy(originalTextPath, copiedTextPath); //파일 복사
fs::copy(originalDirPath, copiedDirPath); //디렉터리 복사(비재귀적)
fs::copy(originalDirPath, copiedDirPath, fs::copy_options::recursive); //디렉터리 복사(재귀적)
파일 또는 디렉터리 이름 변경 또는 이동
fs::rename();
파일 또는 디렉터리 삭제
fs::remove(); // 특정 파일삭제
fs::remove_all(); // 특정 폴더 안에 있는 모든 것을 삭제
class recursive_directory_iterator;
- 디렉터리의 요소들을 순회
- 재귀적으로 하위 디렉터리의 요소들을 순회
파일 상태 반환
std::filesystem::status();
-> std::filesystem::file_status status(const std::filesystem::path& p);
'C++' 카테고리의 다른 글
쓰레딩 라이브러리 (0) | 2022.03.04 |
---|---|
모듈 시스템 (0) | 2022.03.04 |
가변 인자 템플릿 (0) | 2022.03.04 |
람다 식(Lambda Expression) (0) | 2022.03.03 |
C++ constexpr (0) | 2022.03.02 |