当前位置: 首页 > news >正文

Qt 当磁盘可用空间小于指定大小时删除早期的文件

1. 需求

用户反应,电脑由于自身磁盘空间只有128G,由于软件执行一次任务,就要录视频记录,导致磁盘空间爆满,电脑卡,无法再次生成视频

2. 分析:当时软件没有写自动删除视频的代码导致的。

可以写一个检查电脑磁盘的函数,自动检测存放视频的目录。如果磁盘可用空间小于指定的大小,就自动删除早期的视频,如果没有早期的视频,就递归删除现有的视频,直到磁盘可用空间大于指定的大小,如果全部删除,还是小于指定大小,则弹窗提示用户,删除其余不用的文件。

有如下方案:

1. 每隔一段时间,自动检查一次磁盘空间

2. 每次用户执行任务,检查一遍磁盘空间

3. 解决方案

两种方案都没啥问题,我采用了第二种

代码如下:

void Camera::checkDiskSpace() {if (getDiskSpace()) {emit notifyDiskSpaceInsufficient();// 磁盘空间小于阈值,则删除部分早期视频QDir VideoDir = QDir(qApp->applicationDirPath() + VIDEO_PLAYBACK_PATH);bool flag = false;QDateTime today = QDateTime::currentDateTime();for(QFileInfo fileInfo : VideoDir.entryInfoList()) {if (fileInfo.fileName()=="." || fileInfo.fileName()==".."){continue;}QDateTime date = fileInfo.lastModified();uint filedate = date.toTime_t();uint todayData = today.toTime_t();uint ruler = todayData - filedate;ruler /= (60 * 60 * 24);//如果文件修改时间大于七天,清理文件及文件夹//if (ruler > 7) {flag = true;if(fileInfo.isDir()) {QDir dir(fileInfo.filePath());dir.removeRecursively();}else {QFile::remove(fileInfo.filePath());}if(!getDiskSpace()) {break;}}if (flag) {WriteLog("由于磁盘可用空间小于视频存储阈值,已删除部分视频文件", "Camera");}}
}bool Camera::getDiskSpace()
{Q_D(Camera);auto path = qApp->applicationDirPath();auto storage = QStorageInfo(path);storage.refresh();auto availableSize = storage.bytesAvailable()/1024/1024/1024;// 与指定空间的大小auto needClean = availableSize < d->m_diskReserveSize;return needClean;
}

相关文章:

Qt 当磁盘可用空间小于指定大小时删除早期的文件

1. 需求 用户反应&#xff0c;电脑由于自身磁盘空间只有128G&#xff0c;由于软件执行一次任务&#xff0c;就要录视频记录&#xff0c;导致磁盘空间爆满&#xff0c;电脑卡&#xff0c;无法再次生成视频 2. 分析&#xff1a;当时软件没有写自动删除视频的代码导致的。 可以…...

浙大数据结构第七周之07-图6 旅游规划

题目详情&#xff1a; 有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的…...

RocketMQ双主双从同步集群部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…...

分类预测 | MATLAB实现EVO-CNN多输入分类预测

分类预测 | MATLAB实现EVO-CNN多输入分类预测 目录 分类预测 | MATLAB实现EVO-CNN多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现EVO-CNN多输入分类预测 2.代码说明&#xff1a;量谷优化卷积神经网络的数据分类预测&#xff1a;要求于Matlab …...

DAY04_SpringMVC—SpringMVC简介PostMan和ApiFox工具使用SpringMVC请求与响应REST风格

目录 一 SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMVC概述 2 入门案例问题导入2.0 回顾Servlet技术开发web程序流程2.1 使用SpringMVC技术开发web程序流程2.2 代码实现【第一步】创建web工程&#xff08;Maven结构&#xff09;【第二步】设置tomcat服务器&#xff0c;加…...

phpstorm配置ftp同步文件到服务器

这里的默认快捷键 不是 CtrlS &#xff1b;需要设置快捷键&#xff0c;这里原来是save all操作时上传文件到服务器&#xff1b; ** 设置好快捷键后按 CtrlS就会同步文件&#xff08;添加删除文件后保存&#xff0c;服务器也会同步&#xff09; ** 搜索出save all 后&#xf…...

前端jd要求:了解一门后端开发语言优先 解决方案之Node.js

前端jd要求&#xff1a;了解一门后端开发语言优先 解决方案之Node.js 前言常见的后端开发语言一、什么是 Node.js二、学习 Node.js 的前置知识三、学习 Node.js 的步骤1、Node.js 的安装2、Node.js 的基本语法和 API模块导入和导出文件读写操作HTTP 服务器命令行参数 3、Node.j…...

什么是ServiceMesh(Istio一)

现在最火的后端架构无疑是微服务了&#xff0c;微服务将之前的单体应用拆分成了许多独立的服务应用&#xff0c;每个微服务都是独立的&#xff0c;好处自然很多&#xff0c;但是随着应用的越来越大&#xff0c;微服务暴露出来的问题也就随之而来了&#xff0c;微服务越来越多&a…...

【腾讯云 Cloud Studio 实战训练营】Hexo 框架 Butterfly 主题搭建个人博客

什么是Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器就能在线编程。 ​ Hexo 博客成品展示 本人博客如下&…...

搭建Excel服务器

1、下载Excel服务器 下载地址 2、解压文件 3、打开服务器 4、服务器运行信息 5、连接测试 打开客户端 6、登录到服务器 默认账号 密码 admin 3 修改文件保存路径(服务器端点击配置) 7、客户端整体界面 8、配置权限 9、设计模板 10、其他用户登录就可以填写信息 11、用户&#…...

渗透测试成功的8个关键

渗透测试 (penetration test)并没有一个标准的定义&#xff0c;国外一些安全组织达成共识的通用说法是&#xff1a;渗透测试是通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析&#x…...

【leetcode】链表part2

24. 两两交换链表中的节点 迭代方法 public static ListNode swapPairs(ListNode head) {// 输入&#xff1a;head [1,2,3,4]// 输出&#xff1a;[2,1,4,3]ListNode dummy new ListNode(0);dummy.next head;ListNode cur dummy;while (cur.next ! null && cur.ne…...

C#数据类型转换

目录 1.常用的数据类型: ​编辑1.1别名概念例子: 输出结果&#xff1a; 2.数值类型之间的相互转换: 2.1举例: ​编辑输出结果: 1.常用的数据类型: 1.1别名概念例子: 输出结果&#xff1a; 用GetType来获取数据类型的时候&#xff0c;就是指向System.Byte和System.Char这个…...

mybatis-plus逻辑删除的坑

一旦在逻辑字段上加了TableLogic逻辑删除的配置&#xff0c;并且使用mybatis-plus自带的方法时&#xff08;如果自己用xml写SQL不会出现下面的情况&#xff09; 查询、修改时会自动排除逻辑删除的数据 当使用mybatis-plus自带的查询方法时&#xff0c;就不用每次查询的时候跟…...

SQL Server基础之游标

一&#xff1a;认识游标 游标是SQL Server的一种数据访问机制&#xff0c;它允许用户访问单独的数据行。用户可以对每一行进行单独的处理&#xff0c;从而降低系统开销和潜在的阻隔情况&#xff0c;用户也可以使用这些数据生成的SQL代码并立即执行或输出。 1.游标的概念 游标是…...

(二)结构型模式:4、组合模式(Composite Pattern)(C++实例)

目录 1、组合模式&#xff08;Composite Pattern&#xff09;含义 2、组合模式应用场景 3、组合模式的优缺点 4、组合模式的UML图学习 5、C实现组合模式的简单示例&#xff08;公司的OA系统&#xff09; 1、组合模式&#xff08;Composite Pattern&#xff09;含义 组合模…...

flask接口请求频率限制

pip install Flask-Limiter Flask-Limiter官方文档 基本使用 默认是用IP作为key进行计数的&#xff0c;你也可以自定义key&#xff0c;具体看官网 from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_addressapp Flas…...

javaweb监听器和juery技术

监听servlet创建 package com.hspedu.listener;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;/*** 老韩解读* 1. 当一个类实现了 ServletContextListener* 2. 该类就是一个监听器* 3. 该类可…...

C++并发多线程--std::unique_lock的使用

目录 1--std::unique_lock的使用 1-1--std::adopt_lock参数 1-2--std::try_to_lock参数 1-3--std::defer_lock参数 1-4--互斥量所有权转移 1--std::unique_lock的使用 常用成员函数&#xff1a; ① lock(): 加锁&#xff1b; ② unlock(): 解锁&#xff1b; ③ try_lock()…...

【ChatGLM】ChatGLM-6B模型Win+4GB显卡本地部署笔记

ChatGLM-6B是清华大学知识工程和数据挖掘小组发布的一个类似ChatGPT的开源对话机器人&#xff0c;由于该模型是经过约1T标识符的中英文训练&#xff0c;且大部分都是中文&#xff0c;因此十分适合国内使用。 预期环境 本机电脑备注&#xff1a; Win10专业版 32G内存256固态系统…...

一键切换语境+保留术语一致性+上下文感知翻译,Perplexity翻译查询功能的3大颠覆性能力,现在不用就落后了

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity翻译查询功能的全景概览 Perplexity 的翻译查询功能并非传统意义上的“文本翻译器”&#xff0c;而是一种融合语义理解、上下文感知与多语言知识检索的智能问答增强机制。它允许用户以任意自然语言…...

过拟合和欠拟合

模型容量可以视作模型的复杂度。如果数据比较简单&#xff0c;却选择了模型容量高的&#xff08;复杂模型&#xff09;&#xff0c;可能会出现过拟合&#xff08;underfitting&#xff09;如果数据比较复杂&#xff0c;却选择类简单模型&#xff0c;可能会出现欠拟合&#xff0…...

深入CanFestival源码:我是如何通过调试理解PDO映射与同步(SYNC)机制的

深入CanFestival源码&#xff1a;我是如何通过调试理解PDO映射与同步(SYNC)机制的 当你在工业控制项目中第一次遇到CANopen设备的PDO数据突然"消失"&#xff0c;或是SYNC信号与数据流总差那么几毫秒时&#xff0c;就会明白协议栈源码层面的理解有多重要。去年在为某医…...

观测taotoken在多地域请求下的路由优化与整体服务可用性表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观测taotoken在多地域请求下的路由优化与整体服务可用性表现 1. 引言 对于依赖大模型 API 构建在线服务的开发者而言&#xff0c;…...

从芯片手册到PCB:SPL06与MPU9250的I2C实战布线要点与防护设计

从芯片手册到PCB&#xff1a;SPL06与MPU9250的I2C实战布线要点与防护设计 在无人机飞控板的设计中&#xff0c;气压传感器SPL06和九轴传感器MPU9250的稳定工作直接关系到飞行姿态控制的精确性。本文将深入探讨这两个关键传感器在PCB布局中的I2C总线设计要点&#xff0c;以及如何…...

对比官方原价Taotoken活动价带来的Token成本优化感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比官方原价与Taotoken活动价带来的Token成本优化感受 1. 引言&#xff1a;开发者视角下的模型调用成本 对于频繁使用大模型API进…...

Perplexity字体资源查询效率提升300%:基于Chrome DevTools Network + Font Inspector的6步诊断流程

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity字体资源查询 Perplexity 是一款以语义理解与上下文感知见长的 AI 工具&#xff0c;其官方界面高度依赖定制化字体渲染以保障可读性与品牌一致性。在前端开发或设计系统集成过程中&#xff0…...

C语言编程实战:ASCII码表的深度解析与应用

1. ASCII码表&#xff1a;程序员的字符密码本 第一次接触ASCII码表时&#xff0c;我盯着那张密密麻麻的数字字符对照表发呆了半小时。直到在调试程序时发现字母A居然能用数字65代替&#xff0c;才突然意识到&#xff1a;这简直就是程序员世界的摩斯密码。ASCII&#xff08;Amer…...

华硕笔记本终极控制神器:G-Helper轻量化完全指南

华硕笔记本终极控制神器&#xff1a;G-Helper轻量化完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertb…...

第11代酷睿工业主板PICO-TGU4:边缘AI与机器视觉的紧凑型解决方案

1. 项目概述&#xff1a;当紧凑型工业主板遇上第11代酷睿在工业自动化、边缘计算和智能零售这些领域里&#xff0c;我们常常面临一个经典的矛盾&#xff1a;一方面&#xff0c;应用场景对计算性能的要求越来越高&#xff0c;无论是机器视觉的实时图像处理&#xff0c;还是AI推理…...