C++使用C语言库函数创建文件夹
概述
- 本文演示环境: win10 + vs2017
头文件
#include <io.h>
#include <direct.h>
函数
下面的函数,从左至右依次检查文件夹是否存在,如果不存在,则创建, 直到最后一级目录
/// --------------------------------------------------------------------------------------------------------
/// @brief: 创建日志存放的文件夹
/// --------------------------------------------------------------------------------------------------------
void log_imp::create_log_path_()
{
#if defined (os_is_win)
std::string str_sub_dir = log_info_.path_;
std::string str_create_dir;
bool is_end = true;
using namespace std;
while (true == is_end)
{
int sub_path_pos = str_sub_dir.find('\\');
if (0 <= sub_path_pos)
{
/// 得到要检查的目录
str_create_dir += str_sub_dir.substr(0, sub_path_pos + 1);/// +std::string("\\");
/// 创建目录
create_dir_(str_create_dir);
/// 继续找下一级目录
str_sub_dir = str_sub_dir.substr(sub_path_pos + 1, str_sub_dir.length());
}
/// 说明已经找到了最后一级目录,
else
{
/// 创建最后一级目录
str_create_dir += str_sub_dir;
create_dir_(str_create_dir);
is_end = false;
}
}
#elif defined (os_is_linux)
#endif ///
}
create_dir_函数源码
/// --------------------------------------------------------------------------------------------------------
/// @brief: 创建目录
/// --------------------------------------------------------------------------------------------------------
void log_imp::create_dir_(const std::string str_create)
{
/// 文件夹不存在则创建文件夹
if (-1 == _access(str_create.c_str(), 0) )
{
_mkdir(str_create.c_str());
}
else
; ///文件夹已经存在
}