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
			;	///文件夾已經存在
	}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM