JAVA中删除文件夹下及其子文件夹下的某类文件

##定时删除3月以前的图片
##cron表达式    秒 分 时 天 月 ?
##每月1日整点执行
CRON1=0 0 0 1 * ?
scheduled.enable1=false
##图片路径
filePath=E:\\FTP\\FtpS\\Vldata\\Vlbfile\\ 



/**删除3月前拜访图片**/
    @Scheduled(cron="${CRON1}")
    public void delImg(){
        if(Boolean.parseBoolean(scheduled1)){

//        String filePath ="E:\\FTP\\FtpS\\Vldata\\Vlbfile\\";
            String filePath =path;
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.MONTH, -3);//减去三个月
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            long dateNowStr = Long.parseLong(sdf.format(calendar.getTime()));
            int i=0;
//        System.out.println("格式化:"+dateNowStr);
            ArrayList<String> listFileName = new ArrayList<String>();
            getAllFileName(filePath,listFileName);
            for(String name:listFileName){
                name=name.replace(filePath,"");
                String str1 = null;
                if(name.contains("vdvc80100")){

                    String str = name.substring(0,name.indexOf("80100_"));
                    str1 = name.substring(str.length()+6,str.length()+14);
                }
//            if(name.contains("vdvc80100")&&(Integer.valueOf(name.substring(10,18)))<dateNowStr){
                if(name.contains("vdvc80100")&&(Integer.valueOf(str1))<dateNowStr){
                    File f = new File(filePath+name);
//                System.out.println("图片路径"+filePath+name);

                    f.delete();
//                System.out.println("删除文件成功!"+f.getName());
                }
            }
//        System.out.println("删除过期拜访图片数: "+i);
        }else {

            System.out.println("文件删除定时器已关闭!");
        }
    }
    /**
     * 遍历获取文件夹下所有文件
     * @param path
     * @param listFileName
     */
    public static void getAllFileName(String path,ArrayList<String> listFileName){
        File file = new File(path);
        File [] files = file.listFiles();
        String [] names = file.list();
        if(names != null){
            String [] completNames = new String[names.length];
            for(int i=0;i<names.length;i++){
                completNames[i]=path+names[i];
            }
            listFileName.addAll(Arrays.asList(completNames));
        }
        for(File a:files){
            if(a.isDirectory()){//如果文件夹下有子文件夹,获取子文件夹下的所有文件全路径。
                getAllFileName(a.getAbsolutePath()+"\\",listFileName);
            }
        }
    }

 

posted @ 2020-12-02 10:55  MyKatana  阅读(275)  评论(0编辑  收藏  举报