// onjava/ProcessFiles.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.package onjava;import java.io.*;import java.nio.file.*;public class ProcessFiles {public interface Strategy {void process(File file);}private Strategy strategy;private String ext;public ProcessFiles(Strategy strategy, String ext) {this.strategy = strategy;this.ext = ext;}public void start(String[] args) {try {if(args.length == 0)processDirectoryTree(new File("."));elsefor(String arg : args) {File fileArg = new File(arg);if(fileArg.isDirectory())processDirectoryTree(fileArg);else {// Allow user to leave off extension:if(!arg.endsWith("." + ext))arg += "." + ext;strategy.process(new File(arg).getCanonicalFile());}}} catch(IOException e) {throw new RuntimeException(e);}}public voidprocessDirectoryTree(File root) throws IOException {PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:**/*.{" + ext + "}");Files.walk(root.toPath()).filter(matcher::matches).forEach(p -> strategy.process(p.toFile()));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。