MFC—分级创建目录及文件

31 篇文章 7 订阅
分级创建目录及文件:
在根目录下按照日期分类生成目录,在日期目录下再按照分钟生成分钟目录,文件按每分钟生成在不同的文件夹下。
#include <io.h>     //_access头文件
#include <direct.h> //_mkdir()目录头文件

void CFindFilesDlg:: TestLog()
{
   SYSTEMTIME LocalSystemTime;
   GetLocalTime(&LocalSystemTime);
   CString strText;
   strText.Format(_T("LOG_%02d%02d"), LocalSystemTime.wHour, LocalSystemTime.wMinute); 

   char folderName[512];//1.根目录
   sprintf_s(folderName, "D:\\%s", "LOG");
   //根目录文件夹不存在,先创建
   if (_access(folderName, 0) == -1)
   {
   	_mkdir(folderName);
   }
   char folderName2[512];//2.二级目录(日期)
   sprintf_s(folderName2, "%s\\%02d-%02d", folderName, LocalSystemTime.wMonth, LocalSystemTime.wDay);
   if (_access(folderName2, 0) == -1)
   {
   	_mkdir(folderName2);
   }

   //生成TXT文件
   char folderName3[512];//3.三级目录(分钟)
   sprintf_s(folderName3, "%s\\%02d.%02d", folderName2, LocalSystemTime.wHour, LocalSystemTime.wMinute);
   {

   	if (_access(folderName3, 0) == -1)
   	{
   		_mkdir(folderName3);
   	}
   	
   	CString fileName; //4.文件名
   	fileName.Format("%s\\%02d.txt", folderName3, LocalSystemTime.wMinute);
   	if (CStdioFile *fsp = new CStdioFile(fileName, CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate))
   	{
   		CString strContent = _T("这是一个测试数据。目录是在根目录下按照日期分类生成,在日期目录下再按照分钟生成分钟目录,文件按每分钟生成在不同的文件夹下\n");
   		fsp->SeekToEnd();
   		fsp->WriteString(strContent);
   		fsp->Close();
   		delete(fsp);
   	}
   }

}

//获得工作目录路径
CString CFindFilesDlg::GetModulePath(bool bSlash)
{
   CString strModulePath = _T("");
   TCHAR sModuleFileName[MAX_PATH + 1] = { 0 };
   DWORD dRet = GetModuleFileName(NULL, sModuleFileName, MAX_PATH);
   strModulePath += sModuleFileName;
   int nFindIndex = strModulePath.ReverseFind('\\');
   if (nFindIndex)
   {
   	if (bSlash)
   	{
   		strModulePath = strModulePath.Left(nFindIndex + 1);
   	}
   	else
   	{
   		strModulePath = strModulePath.Left(nFindIndex);
   	}
   }

   return strModulePath;
}


//测试按钮
void CFindFilesDlg::OnBtnClickedTest()
{

   CString strWorkPath = GetModulePath(TRUE);//获得工作目录路径,在此次对TestLog()没用,仅作测试。
   TestLog();
 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随心漂流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值