/** * 删除单个文件 * * @param sPath * 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String sPath) { boolean flag = false; File file = new File(sPath); // 路径为文件且不为空则进行删除 if (file.isFile() && file.exists()) { file.delete(); flag = true; } return flag; } /** * @description 扫描指定路径文件夹下所有文件 * 得到每个文件的创建时间 * 删除时间在规定时间之前的所有文件deleteFile(array[i].toString()); * */ private static void getOtherFile(String path) { File file = new File(path); File[] array = file.listFiles(); for (int i = 0; i < array.length; i++) { if (array[i].isFile()) { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date newtime = null; try { newtime = sf.parse(getFileCreateTime(array[i]).replace("/", "-")); } catch (ParseException e) { e.printStackTrace(); } sf.format(newtime); String currentTime = DateUtil.getCurrentDateTime(); String createRealTime = DateUtil.getCurrentDateBeforeDate( currentTime, daynum); // java 比较时间大小 String s1 = sf.format(newtime);//硬盘上文件创建时间 String s2 = createRealTime;//指定日期(删除指定日期之前的文件) java.text.DateFormat df = new java.text.SimpleDateFormat( "yyyy-MM-dd"); java.util.Calendar c1 = java.util.Calendar.getInstance(); java.util.Calendar c2 = java.util.Calendar.getInstance(); try { c1.setTime(df.parse(s1)); c2.setTime(df.parse(s2)); } catch (java.text.ParseException e) { System.err.println("格式不正确"); } int result = c1.compareTo(c2); if (result == 0) { // System.out.println("硬盘上文件创建时间 相等 指定日期"); } else if (result < 0) { // System.out.println("硬盘上文件创建时间 小于 指定日期(硬盘文件日期在指定日期)"); // 当创建时间小于当前规定时间之前时,对文件进行删除操作。 deleteFile(array[i].toString()); } else { // System.out.println("硬盘上文件创建时间 大于 指定日期"); //deleteFile(array[i].toString()); } } else if (array[i].isDirectory()) { getOtherFile(array[i].getPath()); } } } /** * 获取文件创建时间 * */ public static String getFileCreateTime(File filePath) { File file = filePath; try { Process ls_proc = Runtime.getRuntime().exec( "cmd.exe /c dir " + file.getAbsolutePath() + " /tc"); BufferedReader br = new BufferedReader(new InputStreamReader( ls_proc.getInputStream())); for (int i = 0; i < 5; i++) { br.readLine(); } String stuff = br.readLine(); StringTokenizer st = new StringTokenizer(stuff); String dateC = st.nextToken() + " "; String time = st.nextToken(); String datetime = dateC.concat(time); br.close(); return datetime; } catch (Exception e) { return null; } }