拷贝特定文件格式的文件到某文件夹

  • 某庞大的历史项目,大概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());
  • 执行jar
java -jar copy.jar c:\proj d:\target
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值