public static File[] glob(String filePattern) throws IOException { Set<File> fileSet = new TreeSet<>(); glob(filePattern, fileSet); return fileSet.toArray(new File[fileSet.size()]); }
public static Set<File> getSourceProductFileSet(String[] sourceProductPaths, Logger logger) { Set<File> sourceProductFileSet = new TreeSet<>(); String[] paths = trimSourceProductPaths(sourceProductPaths); if (paths != null && paths.length != 0) { for (String path : paths) { try { WildcardMatcher.glob(path, sourceProductFileSet); } catch (IOException e) { logger.severe("I/O problem occurred while scanning source product files: " + e.getMessage()); } } if (sourceProductFileSet.isEmpty()) { logger.log(Level.WARNING, "No valid source product path found."); } } return sourceProductFileSet; }
private File[] getProductsToLoad() { SortedSet<File> fileSet = new TreeSet<File>(); if (sourceProductPaths != null) { for (String filePattern : sourceProductPaths) { if (filePattern == null) { continue; } try { WildcardMatcher.glob(filePattern, fileSet); } catch (IOException e) { logReadProductError(filePattern); } } } return fileSet.toArray(new File[fileSet.size()]); }
@Override protected Product doInBackground() throws Exception { for (String inputPath : inputPaths) { if (inputPath == null || inputPath.trim().length() == 0) { continue; } try { final TreeSet<File> fileSet = new TreeSet<>(); WildcardMatcher.glob(inputPath, fileSet); for (File file : fileSet) { final Product product = ProductIO.readProduct(file); if (product != null) { return product; } } } catch (IOException e) { Logger logger = BeamLogManager.getSystemLogger(); logger.severe("I/O problem occurred while scanning source product files: " + e.getMessage()); } } return null; }
private Product openFirstProduct(String[] inputPaths) { if (inputPaths != null) { final Logger logger = BeamLogManager.getSystemLogger(); for (String inputPath : inputPaths) { if (inputPath == null || inputPath.trim().length() == 0) { continue; } try { final TreeSet<File> fileSet = new TreeSet<>(); WildcardMatcher.glob(inputPath, fileSet); for (File file : fileSet) { final Product product = ProductIO.readProduct(file); if (product != null) { return product; } } } catch (IOException e) { logger.severe("I/O problem occurred while scanning source product files: " + e.getMessage()); } } } return null; }
final File[] files; try { files = WildcardMatcher.glob(sourceProductPath); } catch (IOException e) { logger.severe("'" + sourceProductPath + "' is not a valid products wildcard path.");
@Test public void testGlobWithDoubleStar() throws Exception { String dir = getTestdataDir(); File[] files = WildcardMatcher.glob(dir + "/**/*.txt"); assertNotNull(files); for (File file : files) { //System.out.println("file = " + file); } assertEquals(3, files.length); Arrays.sort(files); assertEquals(new File(dir, "foo/bar/test1.txt"), files[0]); assertEquals(new File(dir, "foo/bar/test3.txt"), files[1]); assertEquals(new File(dir, "foo/test1.txt"), files[2]); }
@Test public void testGlobStarAtEnd() throws Exception { String dir = getTestdataDir(); File[] files = WildcardMatcher.glob(dir + "/foo/bar/*"); assertNotNull(files); for (File file : files) { //System.out.println("file = " + file); } assertEquals(3, files.length); Arrays.sort(files); assertEquals(new File(dir, "foo/bar/test1.txt"), files[0]); assertEquals(new File(dir, "foo/bar/test2.dat"), files[1]); assertEquals(new File(dir, "foo/bar/test3.txt"), files[2]); }
@Test public void testGlobAllFiles() throws Exception { String dir = getTestdataDir(); File[] files = WildcardMatcher.glob(dir + "/foo/**/*.*"); assertNotNull(files); for (File file : files) { //System.out.println("file = " + file); } assertEquals(6, files.length); Arrays.sort(files); assertEquals(new File(dir, "foo/bar/test1.txt"), files[0]); assertEquals(new File(dir, "foo/bar/test2.dat"), files[1]); assertEquals(new File(dir, "foo/bar/test3.txt"), files[2]); assertEquals(new File(dir, "foo/test1.txt"), files[3]); assertEquals(new File(dir, "foo/test2.dat"), files[4]); assertEquals(new File(dir, "foo/test3.dat"), files[5]); }
@Test public void testGlobExistingDir() throws Exception { String dir = getTestdataDir(); File[] files = WildcardMatcher.glob(dir + "/foo"); assertNotNull(files); for (File file : files) { //System.out.println("file = " + file); } assertEquals(1, files.length); assertEquals(new File(dir, "foo"), files[0]); }
@Test public void testGlobDoubleStarAtEnd() throws Exception { String dir = getTestdataDir(); File[] files = WildcardMatcher.glob(dir + "/foo/**"); assertNotNull(files); for (File file : files) { //System.out.println("file = " + file); } assertEquals(7, files.length); Arrays.sort(files); assertEquals(new File(dir, "foo/bar"), files[0]); assertEquals(new File(dir, "foo/bar/test1.txt"), files[1]); assertEquals(new File(dir, "foo/bar/test2.dat"), files[2]); assertEquals(new File(dir, "foo/bar/test3.txt"), files[3]); assertEquals(new File(dir, "foo/test1.txt"), files[4]); assertEquals(new File(dir, "foo/test2.dat"), files[5]); assertEquals(new File(dir, "foo/test3.dat"), files[6]); }
File[] files = WildcardMatcher.glob("*.txt"); assertNotNull(files); assertEquals(expectedTxtFileCount, files.length); assertTrue(getIndexOf(testFiles[1], files) < getIndexOf(testFiles[3], files)); files = WildcardMatcher.glob("./*.txt"); assertNotNull(files); assertEquals(expectedTxtFileCount, files.length);