#include <QCoreApplication>
#include <QDirIterator>
#include <QDebug>
void deleteFile(QFileInfo& logFile){
// 获取三天前的日期时间点
QDateTime cutoffTime = QDateTime::currentDateTime().addDays(-1);
//QDateTime cutoffTime = QDateTime::currentDateTime();
QString fileName = logFile.fileName();
if (fileName.contains("backup_") && fileName.contains(".log")) {
// 提取日期部分(示例:从log_20231101.log提取20231101)
QString datePart = fileName.mid(7, 8);
QDate fileDate = QDate::fromString(datePart, "yyyyMMdd");
if (fileDate.isValid() && fileDate < cutoffTime.date()) {
QFile logFile2(logFile.absoluteFilePath());
if (!logFile2.remove()) {
qWarning() << "删除失败:" << logFile.fileName();
}
}
}
}
void traverseDirectory(const QString &path) {
QDirIterator it(path,
QDir::Files | QDir::NoDotAndDotDot, // 仅遍历文件,排除"."和".."
QDirIterator::Subdirectories); // 递归遍历子目录
while (it.hasNext()) {
QString filePath = it.next();
QFileInfo fileInfo(filePath);
// 输出文件路径和类型
qDebug() << "File:" << fileInfo.absoluteFilePath()
<< "Size:" << fileInfo.size() / 1024 << "KB";
deleteFile(fileInfo);
}
}
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
QString targetPath = "/root/qts/SanliApp/build/unknown-Debug/logs_bf"; // 替换为实际路径
traverseDirectory(targetPath);
return a.exec();
}
删除指定目录下的全部过期文件,以天为单位
最新推荐文章于 2025-12-15 14:46:55 发布
721

被折叠的 条评论
为什么被折叠?



