SW/C++

C++ : filesystem : 기본 예제, 사용법, 주의 사항

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

C++ : filesystem : 기본 예제, 사용법, 주의 사항

 

#include <filesystem>
#include <iostream>
#include "FileSystemExample.h"

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

namespace samples
{
	static const char* FOLDER_NAME = "FileSystemExample";
	static const char* COPIED_FOLDER_NAME = "Copied";
	static const char* FILE_NAME = "test.txt";
	static const char* RENAMED_FILE_NAME = "renamed_text.txt";

	void FileSystemExample()
	{
		const fs::path WORKING_DIRECTORY = fs::current_path() / FOLDER_NAME;
		const fs::path COPIED_FOLDER_DIRECTORY = WORKING_DIRECTORY / COPIED_FOLDER_NAME;
		fs::create_directory(COPIED_FOLDER_DIRECTORY);

		fs::path originalFileLocation = WORKING_DIRECTORY / FILE_NAME;

		cout << originalFileLocation << endl;

		fs::path copiedFileLocation = COPIED_FOLDER_DIRECTORY / FILE_NAME;
		fs::copy(originalFileLocation, copiedFileLocation);

		fs::path renamedFileLocation = WORKING_DIRECTORY / RENAMED_FILE_NAME;
		fs::rename(originalFileLocation, renamedFileLocation);

		for (auto& path : fs::recursive_directory_iterator(WORKING_DIRECTORY))
		{
			std::cout << path << std::endl;
		}

		fs::copy(copiedFileLocation, originalFileLocation);
		fs::remove(renamedFileLocation);
		fs::remove_all(COPIED_FOLDER_DIRECTORY);
	}
}

 

파일 시스템의 좋은 예제가 공유되어 있습니다. 파일시스템의 연산이 어떻게 동작하고 있는지와 파일을 이동하고, 복사하고, 삭제하는 과정들을 나타내고 있습니다. 

파일 시스템을 개발하고 있는 데, C++17에 속한 라이브러리라 적극적으로 활용하지 못하고 있는 것이 아쉬울 따름입니다. 추후에 시간이 흘러서 C++17을 활용할 날을 고대하고 있습니다.

그 때, 적극적으로 활용하기 위해, 출처와 예제를 남기게 되었습니다.

 

https://github.com/POCU/COMP3200CodeSamples

 

POCU/COMP3200CodeSamples

Code samples for COMP3200. Contribute to POCU/COMP3200CodeSamples development by creating an account on GitHub.

github.com

반응형