diff --git a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt index 8d04276..350900b 100644 --- a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt @@ -179,6 +179,7 @@ class ListenActivity : AppCompatActivity() { private fun initData() { HttpUtil.checkUpdate() HttpUtil.getMyConfig(toast = false) + CacheUtil.autoDelete() } private fun initNotification() { diff --git a/app/src/main/java/org/yameida/worktool/utils/CacheUtil.kt b/app/src/main/java/org/yameida/worktool/utils/CacheUtil.kt new file mode 100644 index 0000000..c62435d --- /dev/null +++ b/app/src/main/java/org/yameida/worktool/utils/CacheUtil.kt @@ -0,0 +1,46 @@ +package org.yameida.worktool.utils + +import com.blankj.utilcode.util.LogUtils +import com.blankj.utilcode.util.Utils +import java.io.File +import kotlin.concurrent.thread + +object CacheUtil { + + /** + * 异步执行 + * 删除7天前的下载文件 + */ + fun autoDelete() { + thread { + LogUtils.d("执行自动清除缓存任务") + val externalFilesDir = Utils.getApp().getExternalFilesDir("share") + if (externalFilesDir != null && externalFilesDir.isDirectory) { + val count = deleteOldFiles(System.currentTimeMillis() - 7 * 86400 * 1000, externalFilesDir) + LogUtils.d("已清除文件数: $count") + } else { + LogUtils.d("未发现缓存文件夹") + } + } + } + + private fun deleteOldFiles(deleteTime: Long, directory: File?): Int { + var count = 0 + if (directory != null && directory.isDirectory) { + val files = directory.listFiles() + if (files != null) { + for (file in files) { + if (file.isDirectory) { + count += deleteOldFiles(deleteTime, file) + } else { + if (file.lastModified() < deleteTime) { + file.delete() + count += 1 + } + } + } + } + } + return count + } +} \ No newline at end of file