/**
* 删除指定目录下指定日期格式前的文件
*
* @param dir
* 目录
* @param date
* 时间
* @param flag
* true/false:按照名字删除(名称必须是字符串格式)/按照最后修改日期删除
* @param nameDate
* :名字的日期格式串
* @return true/false:删除成功/失败
*/
public static void deleteDirectoryFiles(String dir, Date date,
boolean flag, String nameDate) {
if (!dir.endsWith(File.separator))
dir = dir + File.separator;
File dirFile = new File(dir);
if ((!dirFile.exists()) || (!dirFile.isDirectory()))
return;
File[] files = dirFile.listFiles();
for (File f : files) {
if (flag) {
String name = f.getName();
name = name.substring(0, name.lastIndexOf('.'));
if (date.after(DateUtil.parseDate(name, nameDate)))
f.delete();
} else {
if (date.getTime() > f.lastModified())
f.delete();
}
}
}
方法调用:
public static void main(String[] args) {
// deleteDirectoryFiles("D:\\tmp",new Date(),false,"");
deleteDirectoryFiles("D:\\tmp",new Date(),true,"yyyyMMddHHmmss");
}