删除历史日志的一个API

bool DeleteOldFiles(const char* strFolder, const char* strPrefix, bool is_recursion, UINT32 ulMinDateTime, UINT32 ulMaxDateTime)
{
HANDLE hFind = NULL;
WIN32_FIND_DATAA findFileData;
std::string strFindFolder = strFolder;
//转换成大写的进行比较
std::string strUpperPrefix = str_toupper(std::string(strPrefix));
std::string strUpperFileName(MAX_PATH, '\0');
std::string strTempName(MAX_PATH, '\0'); if (strFindFolder[strFindFolder.length() - ] == '\\') {
strFindFolder.append("*.*");
} else {
strFindFolder.append("\\*.*");
} hFind = FindFirstFileA(strFindFolder.c_str(), &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
return false;
}
do{
if ((findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) {
if (is_recursion){
if (( == strcmp(".", findFileData.cFileName)) || ( == strcmp("..", findFileData.cFileName)))
{
continue;
} sprintf_s(&strTempName[], MAX_PATH - , "%s\\%s", strFolder, findFileData.cFileName); DeleteOldFiles(strTempName.c_str(), strPrefix, is_recursion, ulMinDateTime, ulMaxDateTime);
}
} else {
//判断文件名是否相同的前缀
strUpperFileName = str_toupper(std::string(findFileData.cFileName));
//有相同的前缀
if (strcmp(strUpperFileName.c_str(), strUpperPrefix.c_str()) >= ) {
//取当前指定位置的数值,转换成整数
UINT32 ulCurrDateTime = atoi(&strUpperFileName[strUpperPrefix.length()]);
if ((ulCurrDateTime >= ulMinDateTime) && (ulCurrDateTime <= ulMaxDateTime)) {
//组合文件名
sprintf_s(&strTempName[], MAX_PATH - , "%s\\%s", strFolder, findFileData.cFileName);
//删除文件
DeleteFileA(strTempName.c_str());
}
}
}
} while (FindNextFileA(hFind, &findFileData));
::FindClose(hFind);
hFind = NULL; return true;
}

删除历史日志的一个API的更多相关文章

  1. ASP.NET Web API 记录请求响应数据到日志的一个方法

    原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...

  2. 循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志

    在一个系统的权限管理模块中,一般都需要跟踪一些具体的日志,ABP框架的系统的日志管理,包括登录日志.接口访问日志.实体变化历史日志,本篇随笔介绍ABP框架中这些日志的管理和界面处理. 1.系统登录日志 ...

  3. mysql删除二进制日志文件

    一.RESET MASTER 这个语句可以验证首次配置主机备机是否成功.步骤如下: 1. 启动master和 slave,开启replication (即 复制) 注:replication (复制) ...

  4. delete archivelog all 无法彻底删除归档日志?

    最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢? 1.演示环境 SQL> select * from v$version whe ...

  5. windows下 定时删除tomcat日志和缓存。可以保留天数

    forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.log /d -5 /c "cmd /c del @path ...

  6. lnmp vps服务器删除mysql日志文件三种方法

    我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒, ...

  7. git 仓库中删除历史大文件

    git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以下分几个步骤介绍如何减小.git文 ...

  8. dataguard主库删除归档日志后从库恢复的方法

    ------------------方法1在主库上使用备份的进行恢复丢失的归档日志-------------------------1.发现主库备份后删除了归档,但是这些归档从库还没应用,也没有传到从 ...

  9. Salesforce中如何删除调试日志

    大家在新建一个用户跟踪标记的时候可能会遇到以下报错:调试日志已经超过了上限,在编辑跟踪标志前,删除一些调试日志.但是在点击“全部删除”按钮删除所有可见的日志后,还是报同样的错误,这时候,我们打开开发者 ...

随机推荐

  1. 【问题解决方案】visudo: /etc/sudoers is busy, try again later

    参考链接: 博客园:visudo: /etc/sudoers is busy, try again later CSDN:Shell 获取进程号并杀掉该进程 注:找到几篇相同的参考内容,都是只有查看进 ...

  2. Antd时间选择框汉化问题总结------国际化全局设置

    import zh_CN from 'antd/lib/locale-provider/zh_CN'; import 'moment/locale/zh-cn'; import { ConfigPro ...

  3. Apache 网站日志分析

    1.获得访问前 10 位的 ip 地址 [root@apache ~]# cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr|head -10 ...

  4. 1130. Infix Expression (25)

    Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with pa ...

  5. oracle汇编01

    1: / define numeric label "1"one: / define symbolic label "one"/ ... assembler c ...

  6. [每日一学]apache camel|IBMWebsphere MQ header issue|MQRFH2 |MQSTR

    最近工作中,遇到一个很奇怪的问题: 现象:在camel开发中,通过 IBM Websphere MQ 给assasin 发送xml的message时,会多出<mcd>等这样的header出 ...

  7. 【串线篇】spring boot嵌入式Servlet容器启动原理;

    什么时候创建嵌入式的Servlet容器工厂?什么时候获取嵌入式的Servlet容器并启动Tomcat: 获取嵌入式的Servlet容器工厂: 1).SpringBoot应用启动运行run方法 2).r ...

  8. Python之常用模块一(主要RE和collections)

    一.认识模块  什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件 ...

  9. SpringCloud学习系列-Eureka服务注册与发现(3)

    修改microservicecloud-provider-dept-8001 1.修改pom 增加内容 <!-- 将微服务provider侧注册进eureka --> <depend ...

  10. CSS3——制作带动画效果的小图片

    下了一个软件:ScreenToGif用来截取动态图片,终于可以展示我的小动图啦,嘻嘻,敲开心! main.html <!DOCTYPE html> <html lang=" ...