package com.persagy.cameractl.utils; import java.io.File; import java.util.Objects; import java.util.Timer; import java.util.concurrent.TimeUnit; /** * 定时程序,目前包括:定时清除生成的mp4文件 * * @author zhangqiankun */ public class TimerInterval { public static void startClearFileTimer() { Timer fileClearTimer = new Timer(); // 0秒后开始响应函数,每隔五分钟执行一次 fileClearTimer.schedule(new ClearTileTimer(), 0, 1000 * 60 * 20); }; } class ClearTileTimer extends java.util.TimerTask { @Override public void run() { String dirString = OtherTools.getVideoFileDir(); File dir = new File(dirString); if (!dir.exists() || !dir.isDirectory()) {// 判断是否存在目录 return; } // 删除时间阈值 long timeP = TimeUnit.MINUTES.toMillis(90); long currTime = System.currentTimeMillis(); String[] files = dir.list(); // 读取目录下的所有目录文件信息 for (int i = 0; i < Objects.requireNonNull(files).length; i++) {// 循环,添加文件名或回调自身 File file = new File(dir, files[i]); long lastModTime = file.lastModified(); // 超时的文件清除 if (currTime - lastModTime > timeP) { file.delete(); } } } }