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
			;	///文件夹已经存在
	}
posted @ 2021-03-28 14:27  mohist  阅读(774)  评论(0编辑  收藏  举报