- 某庞大的历史项目,大概30G,包括图片、程序、附件、页面、脚本等
- 需求:仅将有实际用处的文件按照原目录结构拷贝出来
- 通过jar方式输入处理路径,输出路径来使用
- 使用到的知识点包括:递归、文件过滤器、文件读写、正则表达式
- 代码片段如下:
- 文件过滤器:
/**
* 定义文件筛选器
*/
private FileFilter filefilter = new FileFilter() {
public boolean accept(File file) {
// 对要精简的文件名进行筛选
String fileName = file.getName();
Matcher match1 = file_namePat.matcher(fileName.toLowerCase());
if (!match1.find()) {
if(file.isFile()){
// 获取扩展名
String fileExt = Tax861Cut.getFileExtension(file);
// 扩展名不为空
if (!fileExt.equals("")) {
// 进行扩展名匹配筛选
Matcher match2 = file_typePat.matcher(fileExt.toLowerCase());
if (match2.find()) {
file_count.put(fileExt.toLowerCase(), (file_count
.get(fileExt.toLowerCase()) == null ? 0
: file_count.get(fileExt.toLowerCase())) + 1);
return true;
}
}
}
}
return false;
}
};
public String file_type = "asp|html|htm|js|jpg|gif|css";
public Pattern file_typePat = Pattern.compile(file_type);
Matcher match2 = file_typePat.matcher(fileExt.toLowerCase());
java -jar copy.jar c:\proj d:\target