๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ์Šคํ…œ๊ฐœ๋ฐœ/cplusplus

boost filesystem ์‚ฌ์šฉ๋ฒ• ์ด์ •๋ฆฌ

by ์ด๋…ธํ‚ค_ 2022. 3. 28.

0. ์‚ฌ์ „ ์กฐ๊ฑด

- ์•„๋ž˜ ์˜ˆ์ œ์ฝ”๋“œ๋Š”  vs2017์—์„œ ์‚ฌ์šฉ(๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ ํฌ๋กœ์Šคํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ)

- boost ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™˜๊ฒฝ์„ค์ • ๋งˆ์นœ ์ƒํƒœ

 

1. ํŒŒ์ผ ๊ฒฝ๋กœ ์„ค์ •
- ํ—ค๋” ์ถ”๊ฐ€

#include <boost/filesystem.hpp>


2. ๊ธฐ๋ณธ path ์ƒ์„ฑ

boost::filesystem::path p(boost::filesystem::current_path());
boost::filesystem::path state = p;

- get ํ•  ์ˆ˜ ์žˆ๋Š” path ์ •๋ณด

std::cout <<"boost::filesystem::initial_path() : " << boost::filesystem::initial_path().string() << std::endl;
std::cout <<"boost::filesystem::current_path() : " << boost::filesystem::current_path().string() << std::endl;
std::cout <<"boost::filesystem::unique_path() : " << boost::filesystem::unique_path().string() << std::endl;

๊ฒฐ๊ณผ๊ฐ’

๋ฆฌ๋ˆ…์Šค
์œˆ๋„์šฐ


3. path ๊ฒฝ๋กœ ์ƒ์„ฑ

std::string dir_state = "state";
state += "/" + dir_state;


4. path์— ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ์œ ๋ฌด ํŒ๋‹จ
- ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„๊ฒฝ์šฐ์— ์ƒˆ๋กœ ์ƒ์„ฑ

if(!boost::filesystem::exists(state))
{
	boost::filesystem::create_directory(state);
}

5. ์ƒ์„ฑํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— ํŒŒ์ผ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์ฒดํฌ

if (boost::filesystem::is_empty(state) == false)
{
	//ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ
}


6. ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ

boost::filesystem::path oldfile = {old file path};
boost::filesystem::path newfile = {new file path};
boost::filesystem::rename(oldfile, newfile);

๋Œ“๊ธ€