java正则匹配指定文件名称动态删除(保留最新的三个文件)升级版
获取指定文件名
public static void main(String[] args) {
".* 你指定的文件名称字符.*" //为正则表达式
final String fileName = ".*JSMY_backup.*";
File path = new File("D://Demo");
String [] list = path.list(new FilenameFilter() {
private Pattern pattern = Pattern.compile(fileName);
@Override
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
});
Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
for(String dirItem : list){
System.out.println(dirItem);
}
}
java正则匹配指定文件名称动态删除(保留最新的三个文件)
package com.op.defile;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Pattern;
public class ddd {
/**
* @param args
*/
public static void main(String[] args) {
//文件路径
String path =args[0];
List<File> list = getFileSort(path);
//正则表达式
final String fileName = ".*"+args[1]+".*";
for (int i = 0; i < list.size(); i++) {
//是否匹配
boolean result=Pattern.compile(fileName).matcher(list.get(i).getName()).find();
//保留最新
if(i>=new Integer(args[2])&&result==true){
list.get(i).delete();
}
}
}
/**
* 获取目录下所有文件(按时间排序)
*
* @param path
* @return
*/
public static List<File> getFileSort(String path) {
List<File> list = getFiles(path, new ArrayList<File>());
if (list != null && list.size() > 0) {
Collections.sort(list, new Comparator<File>() {
public int compare(File file, File newFile) {
if (file.lastModified() < newFile.lastModified()) {
return 1;
} else if (file.lastModified() == newFile.lastModified()) {
return 0;
} else {
return -1;
}
}
});
}
return list;
}
/**
*
* 获取目录下所有文件
*
* @param realpath
* @param files
* @return
*/
public static List<File> getFiles(String realpath, List<File> files) {
File realFile = new File(realpath);
if (realFile.isDirectory()) {
File[] subfiles = realFile.listFiles();
for (File file : subfiles) {
if (file.isDirectory()) {
getFiles(file.getAbsolutePath(), files);
} else {
files.add(file);
}
}
}
return files;
}
}
生成jar执行文件 参数
java -jar delete.jar (D://Demo) 指定文件夹路径 JSMY_backup(文件名包含的字符) 3(保留几个最新文件)
参数之间用空格分开