本地文件超时删除

简介: 文件超时删除功能工具

package com.dahe.mylibrary.utils;

import android.util.Log;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

import static com.dahe.mylibrary.utils.CrashHandler.TAG;

public class FileUtil {

//移除文件,获取文件时间与当前时间对比,我这时间定位5天,删除五天前的文件
public static void removeFileByTime(String dirPath) {
    //获取目录下所有文件
    List<File> allFile = getDirAllFile(new File(dirPath));
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //获取当前时间
    Date end = new Date(System.currentTimeMillis());
    try {
        end = dateFormat.parse(dateFormat.format(new Date(System.currentTimeMillis())));
    } catch (Exception e){
        Log.d(TAG, "dataformat exeption e " + e.toString());
    }
    Log.d(TAG, "getNeedRemoveFile  dirPath = "  +dirPath);
    for (File file : allFile) {//ComDef
        try {
            //文件时间减去当前时间
            Date start = dateFormat.parse(dateFormat.format(new Date(file.lastModified())));
            long diff = end.getTime() - start.getTime();//这样得到的差值是微秒级别
            long days = diff / (1000 * 60 * 60 * 24);

// if(ComDef.LOGMAXKEEPTIME <= days){

            if(5 <= days){
                deleteFile(file);
            }

        } catch (Exception e){
            Log.d(TAG, "dataformat exeption e " + e.toString());
        }
    }
}

//删除文件夹及文件夹下所有文件
public static void deleteFile(File file) {
    if (file.isDirectory()) {
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            File f = files[i];
            deleteFile(f);
        }
        file.delete();
    } else if (file.exists()) {
        file.delete();
    }
}

//获取指定目录下一级文件
public static List<File> getDirAllFile(File file) {
    List<File> fileList = new ArrayList<>();
    File[] fileArray = file.listFiles();
    if(fileArray == null)
        return fileList;
    for (File f : fileArray) {
        fileList.add(f);
    }
    fileSortByTime(fileList);
    return fileList;
}


//对文件进行时间排序
public static void fileSortByTime(List<File> fileList) {
    Collections.sort(fileList, new Comparator<File>() {
        public int compare(File p1, File p2) {
            if (p1.lastModified() < p2.lastModified()) {
                return -1;
            }
            return 1;
        }
    });
}

}

目录
相关文章
|
8月前
|
数据安全/隐私保护
如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件
该文提供了一个工具的下载链接,分别在百度网盘和蓝奏云,提取码分别为&qwu2&quot;和&quot;2r1z&quot;。工具的使用需结合之前发布的两篇教程:《快捷自由定时重启、注销、关机》和《如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)》。操作步骤包括设定&quot;来源路径&quot;进行Zip打包,启用&quot;备份模式&quot;,然后保存批量复制任务,最后在定时器中执行已设置的批量文件复制任务。文中附有相关截图以供参考。
|
对象存储
尝试增加OSS客户端的超时时间
尝试增加OSS客户端的超时时间
889 4
下载文件 | 下载流文件的处理方式
当下载文件时,返回为流的形式,所以在请求的时候设置 responseType:’arraybuffer’ 或者设置为 responseType: ‘blob’ 的时候,只有当接口返回正确的时候才会下载文件,返回错误的时候,应该是提示用户出错了,但是使用 arraybuffer 或者 blob 的时候,错误的信息也是返回这个形式的。所以需要转换一下。
178 0
|
Shell
1、定时清空文件内容,定时记录文件大小
1、定时清空文件内容,定时记录文件大小
106 1
|
存储 编解码 Serverless
上传OSS对象后自动触发函数
上传OSS对象后自动触发函数
257 0
EMQ
|
存储 JSON 物联网
v1.9.1 进行中:MQTT X CLI 支持自动重连及保存和读取本地文件
MQTT 5.0客户端工具MQTT X发布了1.9.0版本:MQTT X CLI命令行客户端实现支持MQTT的性能测试,桌面端应用新增了关于学习MQTT的帮助页面。1.9.1版本开发中,将支持更多新功能。
EMQ
212 0
v1.9.1 进行中:MQTT X CLI 支持自动重连及保存和读取本地文件
一个H264流,保存成多个文件需要注意的两个问题
一个H264流,保存成多个文件需要注意的两个问题
184 0
uploadfile上传文件失败,数据接收不到问题排查步骤。
1.[font=宋体]检查域名白名单是否已经添加。[/font] 2.[font=宋体]上传[/font]URL[font=宋体]是否写对。[/font] 3.[font=宋体]服务器接收是否正确。
1174 12