资源简介
由于项目经常调试,会经常累积大量日志,因此需要写一个定时删除的功能,代码中精确到秒,路径可以自己输入,也可以默认为当前路径(Glog文件,需自己创建一个空文件),代码中包含写日志,因此可以自己测试,由于写得急促,多处需要优化。由于代码使用线程写的,因此可以很方便地移植到其他项目中。
代码片段和文件信息
#include “Glog.h“
#include “delglog.h“
using namespace std;
unsigned int __stdcall DelglogRun(void *arg)
{
string s=Delglog::GetInstance()->GetPath();
//string s=“C:\\ScraperThreeD\\Glog“;
char* c;
const int len = s.length();
c = new char[len+1];
strcpy(cs.c_str());
Delglog::GetInstance()->DelglogRealize(c);
return 0;
}
Delglog *Delglog::m_pDelglog = new Delglog();
void Delglog::DelglogStart()
{
HANDLE hThread;
hThread = (HANDLE)_beginthreadex(NULL 0 DelglogRun NULL 0 NULL);
}
string Delglog::GetPath()
{
char szExePath[MAX_PATH] = {0};
GetModuleFileNameA(NULLszExePathMAX_PATH);
string strExsPath = szExePath;
int pos1 = strExsPath.find_last_of(‘\\‘);
string strAppName(strExsPath.substr(pos1 + 1) );
string a = strExsPath.substr(0pos1);
int pos2 = a.find_last_of(‘\\‘);
string b = a.substr(0pos2);
int pos3 = strAppName.find_last_of(‘.‘);
strAppName = strAppName.substr(0pos3);
string strLogPath = b +“\\Glog“;
return strLogPath;
}
//获取文件创建时间,若从其它路径移过来的文件以这个文件移过来的时间为准
string Delglog::FileTime(PFILETIME pfile)
{
FILETIME fileTime;
SYSTEMTIME st;
FileTimeToLocalFileTime(pfile&fileTime);
FileTimeToSystemTime(&fileTime &st);
string time;
string sysmsdshsmisse;//年月日,时分秒
stringstream ssyssmssdsshssmissse;
ssy< ssy>>sy;
ssm< ssm>>sm;
if(atoi(sm.c_str())<10)
sm=“0“+sm;
ssd< ssd>>sd;
if(atoi(sd.c_str())<10)
sd=“0“+sd;
ssh< ssh>>sh;
if(atoi(sh.c_str())<10)
sh=“0“+sh;
ssmi< ssmi>>smi;
if(atoi(smi.c_str())<10)
smi=“0“+smi;
ssse< ssse>>sse;
if(atoi(sse.c_str())<10)
sse=“0“+sse;
time=sy+sm+sd+sh+smi+sse;
LOG(INFO)<<“ftime: “< return time;
//cout<}
//函数功能: 扫描查找文件
//参数说明:
//szPath:需要扫描的目录
void Delglog::DelglogRealize(char *szPath)
{
WIN32_FIND_DATAA FindFileData;
char szFileToFind[MAX_PATH] = {0};
lstrcpyA(szFileToFind szPath);
lstrcatA(szFileToFind “\\*.*“);
//cout< //printf(“\n“);
//查找目录下所有文件
HANDLE hFile = FindFirstFileA(szFileToFind&FindFileData);
if (hFile == INVALID_HANDLE_VALUE)return;
do
{
char szNewPath[MAX_PATH] = {0};
lstrcpyA(szNewPath szPath);
if(szPath==“*.“)
{
LOG(INFO)< //printf(“\n“);
}
//判断是否是目录
if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
//判断是否是.或..(没有下级文件?)
if (!lstrcmpA(FindFileData.cFileName “.“) || !lstrcmpA(FindFileData.cFileName “..“))
{
}
else
{
//递归查找下级目录
lstrcatA(szNewPath “\\“);
lstrcatA(szNewPath FindFileData.cFileName);
Delglog::DelglogRealize(szNewPath);
相关资源
- Log4Net封装,类可直接引入使用,附
- 操作系统文件管理实验报告及源码
- M.2接口M-KEY,AD封装库文件
- 学生成绩管理系统模板Axure
- modis数据全球分幅格网shp文件
- K8_Struts2_EXP S2-045 & 任意文件上传 201
- 基于QT开发的读取微软xbox手柄读写信
- 关于DSP2812复位、初始化、CMD文件编写
- 使用 FME 将勘测定界坐标交换格式文本
- 基于RFID的门禁系统
- Word文件批量合并(源码)
- 人脸识别所用到的js文件
- 江南大学计算机组成原理期末设计,
- 移远BC28的AD封装库文件
- GLM动态库、静态库和头文件OpenGL
- 操作系统 文件操作的模拟实验报告报
- IDL,气象站点逐小时数据处理,转换
- boostrap-select的小附带js css 文件
- 平板太阳能联合空气源热泵供热水
- adxl345 pcb库文件 altium格式
- MD5Hash.rar
- 压缩文件.txt
- 全国气象站点shp文件-全
- GPS卫星坐标计算Rinex 2.10导航星历文件
- 配置pcl与Qt时的两个QVTKWidgetPlugin文件
- Hex固件合并,2个hex文件合并成一个
-
Hba
se+Spring boot实战分布式文件存储 - 数据库设计之药品存销管理系统,e
- artTemplate的两个js文件(原生+简洁)
- CST2014安装包与破解文件和安装教程
评论
共有 条评论