From 25ac86fe6a8d26dddd41ba7b4a276e6309b1afad Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期三, 03 十二月 2025 14:49:31 +0800
Subject: [PATCH] 1.sdcard/android/data/包名/files下的h264文件,超过五天删除掉

---
 app/src/main/java/com/anyun/h264/H264EncodeService.java |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/anyun/h264/H264EncodeService.java b/app/src/main/java/com/anyun/h264/H264EncodeService.java
index 5d9c404..bbdb554 100644
--- a/app/src/main/java/com/anyun/h264/H264EncodeService.java
+++ b/app/src/main/java/com/anyun/h264/H264EncodeService.java
@@ -36,6 +36,7 @@
     private H264FileTransmitter h264FileTransmitter; // H264鏂囦欢浼犺緭鍣�
     private String outputFileDirectory; // H264鏂囦欢杈撳嚭鐩綍
     private WatermarkInfo currentWatermarkInfo; // 褰撳墠姘村嵃淇℃伅
+    private static final int H264_FILE_RETENTION_DAYS = 5; // 鍙牴鎹渶姹傝皟鏁翠负3鎴�5澶�
     
     // 澶氳繘绋嬫敮鎸侊細绗簩涓憚鍍忓ご鐨勬湇鍔¤繛鎺�
     private IH264EncodeService camera2Service;
@@ -78,6 +79,9 @@
         // 鍒濆鍖栬緭鍑烘枃浠剁洰褰曪紙浣跨敤搴旂敤澶栭儴瀛樺偍鐩綍锛�
         outputFileDirectory = getExternalFilesDir(null).getAbsolutePath();
         Timber.d("Output file directory: %s", outputFileDirectory);
+
+        // 娓呯悊杩囨湡鐨凥264鏂囦欢
+        cleanupExpiredH264Files(H264_FILE_RETENTION_DAYS);
     }
     
     @Override
@@ -793,6 +797,41 @@
             currentWatermarkInfo = null;
         }
     }
+
+    /**
+     * 鍒犻櫎瓒呰繃淇濈暀鏈熺殑H264鏂囦欢
+     */
+    private void cleanupExpiredH264Files(int retentionDays) {
+        if (outputFileDirectory == null) {
+            Timber.w("cleanupExpiredH264Files: outputFileDirectory is null");
+            return;
+        }
+
+        File dir = new File(outputFileDirectory);
+        if (!dir.exists() || !dir.isDirectory()) {
+            Timber.w("cleanupExpiredH264Files: directory invalid -> %s", outputFileDirectory);
+            return;
+        }
+
+        long retentionMillis = TimeUnit.DAYS.toMillis(Math.max(1, retentionDays));
+        long cutoffTime = System.currentTimeMillis() - retentionMillis;
+
+        File[] files = dir.listFiles((d, name) -> name.toLowerCase(Locale.CHINA).endsWith(".h264"));
+        if (files == null || files.length == 0) {
+            return;
+        }
+
+        for (File file : files) {
+            if (file.lastModified() < cutoffTime) {
+                boolean deleted = file.delete();
+                if (deleted) {
+                    Timber.i("Deleted expired H264 file: %s", file.getAbsolutePath());
+                } else {
+                    Timber.w("Failed to delete expired H264 file: %s", file.getAbsolutePath());
+                }
+            }
+        }
+    }
     
     /**
      * 浠庢枃浠跺垱寤鸿祫婧愪俊鎭紙濡傛灉鏂囦欢鍦ㄦ椂闂磋寖鍥村唴锛�

--
Gitblit v1.8.0