QSet<QDate>cleanupDates;// 记录已执行清理的日期voidsaveLog(constQString&logMsg){QDateTime currentDateTime=QDateTime::currentDateTime();QString dateString=currentDateTime.toString("yyyy-MM-dd hh:mm:ss:zzz");// 按日期分文件存储,方便管理QString datePrefix=currentDateTime.toString("yyyyMMdd");QString logFileName=QString(u8"%1/光管日志%2_%3.txt").arg(QCoreApplication::applicationDirPath()).arg(m_XrayComPort).arg(datePrefix);// 检查今天是否已执行清理QDate today=QDate::currentDate();if(!cleanupDates.contains(today)){cleanupOldLogFiles(3);// 清理3天前的日志文件cleanupDates.insert(today);// 清理过期的清理记录(保留最近30天的记录)QDate cutoff=today.addDays(-30);QSet<QDate>newSet;for(constQDate&date:cleanupDates){if(date>=cutoff){newSet.insert(date);}}cleanupDates=newSet;}QFilefile(logFileName);if(file.open(QIODevice::Append|QIODevice::Text)){QTextStreamout(&file);out.setCodec("UTF-8");QString XrayMsg=QString("%1 %2\n").arg(dateString).arg(logMsg);out<<XrayMsg;file.close();}}// 按日期文件清理voidcleanupOldLogFiles(intkeepDays){QString logDir=QCoreApplication::applicationDirPath();QDirdirectory(logDir);// 查找所有光管日志文件QString filter=QString("光管日志%1_*.txt").arg(m_XrayComPort);QStringList logFiles=directory.entryList(QStringList()<<filter,QDir::Files);QDateTime cutoffDate=QDateTime::currentDateTime().addDays(-keepDays);for(constQString&fileName:logFiles){QString filePath=directory.filePath(fileName);QFileInfofileInfo(filePath);// 根据最后修改时间删除if(fileInfo.lastModified()<cutoffDate){QFile::remove(filePath);}}}【qt】每日删除文件
张小明
前端开发工程师
Python构建AI Agent自主智能体系统
核心要点 环境建模与状态表示 动作空间与策略选择 奖励机制与反馈循环 训练与优化 1. 环境建模与状态表示 环境建模是AI Agent系统的基础,它决定了Agent如何感知和理解外部世界。状态表示则是将环境中的信息转化为Agent可以处理的形式。 原理 环境建模:定义环境的规则和状态…
每天一道面试题之架构篇|低延迟实时排行榜系统架构设计
面试官直接问道:"如果要设计一个支持百万用户实时竞技的游戏排行榜,如何保证低延迟和高并发?" 一、开篇:实时排行榜的核心挑战 想象一下:王者荣耀巅峰赛最后10秒,百万玩家同时刷新排名࿰…
基于 GEE 利用 ERA5-LAND 数据集自动提取全球径流数据:地表 + 地下径流总和(mm)完整提取方案
目录 一、区域定义与地图初始化 二、数据集加载 三、年份筛选与数据计算 四、数据导出到 Google Drive 五、代码关键特性与注意事项 六、运行结果 若觉得代码对您的研究 / 项目有帮助,欢迎点击打赏支持!需要完整代码的朋友,打赏后可在后…
Linux SSH配置密钥文件及免密登录
操作 1、生成私钥文件 ssh-keygen -t rsa -f id_pem_systemssh-keygen -p -m PEM -f ./id_pem_system2、加入authorized_keys文件 cat id_pem_system.pub >> authorized_keys配置A机器免密登录B机器 1、获取B机器私钥 2、登录A机器,并且上传B机器私钥到以下目…
样式复用多态
Styles https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-style-0000001473856690-V2 如果每个组件的样式都需要单独设置,在开发过程中会出现大量代码在进行重复样式设置,虽然可以复制粘贴,但为了代码简洁性和后续方…
【0183转808协议系列】(二)如何用linux C语言实现$GPRMC报文解析
NMEA 0183协议对RMC消息的定义如下: 我们从串口读取到的模组输出的LOG,有时候可能是好几行数据,所以我们要逐行解析$GPRMC报文。 bytes_read read_serial(serial_fd, recv_buffer, sizeof(recv_buffer) - 1);if (bytes_read > 0) {recv_…