欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

删除指定日期前的文件File

程序员文章站 2022-05-15 09:54:27
...
/**
     * 定时删除日志
     *
     * @param path 日志路径
     * @param day 最近几天
     * @param pdate 计划日期
     */
    public static void deleteLogFileMyself(String path, int day, String pdate) {
        File file = new File(path);
        Calendar calendar = Calendar.getInstance();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date currentDate = df.parse(pdate);
            calendar.setTime(currentDate);
            calendar.add(Calendar.DATE, -day); //得到前几天
            Date date = calendar.getTime();
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File f : files) {//xxxx_2019-09-05_2325
                    Date logdate = df.parse(f.getName().split("_")[1]);
                    //若是文件夹且在设定日期之前
                    if (f.isDirectory() && logdate.before(date)) {
                        File[] log = f.listFiles();
                        for (File flog : log) {
                            flog.delete();
                        }
                        f.delete();
                    }
                } }
        } catch (ParseException e) {
        }
    }

calendar.add(Calendar.DATE, -day); //得到前几天

logdate.before(date) 比较日期date类型