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); } } }
赵磊