1 package org.locationtech.jtstest.util; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.Iterator; 8 import java.util.List; 9 10 public class FilesUtil { 11 expand(Collection fileAndDirectoryNames)12 public static List expand(Collection fileAndDirectoryNames) { 13 List filenames = new ArrayList(); 14 for (Iterator i = fileAndDirectoryNames.iterator(); i.hasNext();) { 15 String name = (String) i.next(); 16 File file = new File(name); 17 if (file.isDirectory()) { 18 filenames.addAll(expand(file)); 19 } else if (file.isFile()) { 20 filenames.add(name); 21 } 22 } 23 return filenames; 24 } 25 expand(Collection fileAndDirectoryNames, String fileExtension)26 public static List expand(Collection fileAndDirectoryNames, String fileExtension) { 27 List filenames = new ArrayList(); 28 for (Iterator i = fileAndDirectoryNames.iterator(); i.hasNext();) { 29 String name = (String) i.next(); 30 File file = new File(name); 31 if (file.isDirectory()) { 32 filenames.addAll(expand(file, fileExtension)); 33 } else if (file.isFile()) { 34 filenames.add(name); 35 } 36 } 37 return filenames; 38 } 39 expand(File fileOrDir)40 public static List expand(File fileOrDir) { 41 List filenames = new ArrayList(); 42 if (fileOrDir.isDirectory()) { 43 File[] files = fileOrDir.listFiles(); 44 for (int i = 0; i < files.length; i++) { 45 if (files[i].isFile()) { 46 filenames.add(files[i].getPath()); 47 } 48 } 49 } 50 else { 51 filenames.add(fileOrDir.getPath()); 52 } 53 return filenames; 54 } 55 expand(File fileOrDir, String fileExtension)56 public static List expand(File fileOrDir, String fileExtension) { 57 List filenames = new ArrayList(); 58 if (fileOrDir.isDirectory()) { 59 File[] files = fileOrDir.listFiles(new FilenameFilter() { 60 @Override 61 public boolean accept(File dir, String name) { 62 return name.endsWith("." + fileExtension); 63 } 64 }); 65 for (int i = 0; i < files.length; i++) { 66 if (files[i].isFile()) { 67 filenames.add(files[i].getPath()); 68 } 69 } 70 } else { 71 filenames.add(fileOrDir.getPath()); 72 } 73 return filenames; 74 } 75 filenamesDeep(File directory)76 public static Collection filenamesDeep(File directory) { 77 Collection filenames = new ArrayList(); 78 File[] files = directory.listFiles(); 79 for (int i = 0; i < files.length; i++) { 80 if (files[i].isFile()) { 81 filenames.add(files[i].getPath()); 82 } else if (files[i].isDirectory()) { 83 filenames.add(filenamesDeep(files[i])); 84 } 85 } 86 return filenames; 87 } 88 toFile(List<String> filenames)89 public static List<File> toFile(List<String> filenames) { 90 List<File> files = new ArrayList<File>(); 91 for (String filename : filenames) { 92 files.add(new File(filename)); 93 } 94 return files; 95 } 96 97 } 98