删除历史日志的一个API
2024-08-30 02:06:49
删除历史日志的一个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;
}
最新文章
- csv to splite db form
- c#制作一个屏幕保护程序
- 针对bootstrap内联单选框input与文字不能居中对齐的解决办法
- Life is hard
- scala学习之第三天:数组的特性与使用技巧
- 一步步学习ASP.NET MVC3 (3)——Razor(1)
- UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)
- C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- AWK用法入门详解
- js实现360度图片旋转
- C# 格式化字符串
- JAVA ==号和equals()的区别
- JS的javascript:void(0)用法
- QMD ST表 倍增
- 译: 3. RabbitMQ Spring AMQP 之 Publish/Subscribe 发布和订阅
- php中0与’0’的区别
- apache 运行一段时间出现错误
- C# Socket模拟发送接收
- 图解Python可以做些什么
- PAT——1014. 福尔摩斯的约会
热门文章
- rabitMQ-centos7安装
- 事件流程以及dom2级事件绑定
- nginx之热部署,以及版本回滚
- 028-实现阿里云ESC多FLAT网络
- 牛客假日团队赛5 F	随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)
- docker安装MySQL5.7示例!!坑
- css多种方式实现双飞翼布局
- Apache+Mysql+PHP 套件
- SpringCloud学习系列-Eureka服务注册与发现(4)
- mysql DEFAULT约束 语法