TimerInterval.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.persagy.cameractl.utils;
  2. import java.io.File;
  3. import java.util.Objects;
  4. import java.util.Timer;
  5. import java.util.concurrent.TimeUnit;
  6. /**
  7. * 定时程序,目前包括:定时清除生成的mp4文件
  8. *
  9. * @author zhangqiankun
  10. */
  11. public class TimerInterval {
  12. public static void startClearFileTimer() {
  13. Timer fileClearTimer = new Timer();
  14. // 0秒后开始响应函数,每隔五分钟执行一次
  15. fileClearTimer.schedule(new ClearTileTimer(), 0, 1000 * 60 * 20);
  16. };
  17. }
  18. class ClearTileTimer extends java.util.TimerTask {
  19. @Override
  20. public void run() {
  21. String dirString = OtherTools.getVideoFileDir();
  22. File dir = new File(dirString);
  23. if (!dir.exists() || !dir.isDirectory()) {// 判断是否存在目录
  24. return;
  25. }
  26. // 删除时间阈值
  27. long timeP = TimeUnit.MINUTES.toMillis(90);
  28. long currTime = System.currentTimeMillis();
  29. String[] files = dir.list(); // 读取目录下的所有目录文件信息
  30. for (int i = 0; i < Objects.requireNonNull(files).length; i++) {// 循环,添加文件名或回调自身
  31. File file = new File(dir, files[i]);
  32. long lastModTime = file.lastModified();
  33. // 超时的文件清除
  34. if (currTime - lastModTime > timeP) {
  35. file.delete();
  36. }
  37. }
  38. }
  39. }