C++ filesystem replace_extention

BOOL Program::LoadJsonConfig()
{
	namespace fs = std::filesystem;

	wchar_t exePathStr[4096];
	GetModuleFileName(NULL, exePathStr, 4096);
	fs::path exePath = exePathStr;
	fs::path jsonConfPath = exePath.replace_extension("config.json");

	if (fs::is_regular_file(jsonConfPath) == false)
	{
		return FALSE;
	}

	std::ifstream jsonConfFile(jsonConfPath);
	try
	{
		jsonConfFile >> m_jsonConfig;
	}
	catch (...)
	{
		jsonConfFile.close();
		return FALSE;
	}

	jsonConfFile.close();
	return TRUE;
}

C++11에 추가된 filesystem으로 실행된 exe과 동일한 이름의 config.json 파일을 읽는 코드.

c++ filesystem 은 이제 다른 스크립트언어에 지원하는 file 처리 내용과 유사하게 지원해 줘서 c++ 에서 이런 저런 내용 처리하기가 많이 편해진것 같다.
예전에 텍스트 파일 일괄 처리할 일이 있었는데 c++에서 정규표현식도 지원되고 파일시스템도 지원되니 가끔 써서 어색한 스크립트보다 그냥 자주써서 편한 C++로 작성하고 돌림.

작성 후 컴파일 해서 적용해야 한다는게 단점이지만 실행속도가 빠르니 대용량 처리할때는 나름 장점이 있다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다