Java 类java.nio.file.DirectoryStream 实例源码

项目:openjdk-jdk10    文件:ZipFSTester.java   
private static void z2zmove(FileSystem src, FileSystem dst, String path)
    throws IOException
{
    Path srcPath = src.getPath(path);
    Path dstPath = dst.getPath(path);

    if (Files.isDirectory(srcPath)) {
        if (!Files.exists(dstPath))
            mkdirs(dstPath);
        try (DirectoryStream<Path> ds = Files.newDirectoryStream(srcPath)) {
            for (Path child : ds) {
                z2zmove(src, dst,
                        path + (path.endsWith("/")?"":"/") + child.getFileName());
            }
        }
    } else {
        //System.out.println("moving..." + path);
        Path parent = dstPath.getParent();
        if (parent != null && Files.notExists(parent))
            mkdirs(parent);
        Files.move(srcPath, dstPath);
    }
}
项目:litiengine    文件:FileUtilities.java   
public static List<String> findFilesByExtension(final List<String> fileNames, final Path dir, final String extension) {
  try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
    for (final Path path : stream) {
      if (path.toFile().isDirectory()) {
        if (isBlackListedDirectory(path)) {
          continue;
        }

        findFilesByExtension(fileNames, path, extension);
      } else if (path.toAbsolutePath().toString().endsWith(extension)) {
        fileNames.add(path.toAbsolutePath().toString());
      }
    }
  } catch (final IOException e) {
    log.log(Level.SEVERE, e.getMessage(), e);
  }

  return fileNames;
}
项目:incubator-netbeans    文件:NBJRTFileSystem.java   
@Override
public String[] children(String f) {
    Path p = getPath(f);
    try (DirectoryStream<Path> dir = Files.newDirectoryStream(p)){
        java.util.List<String> result = new ArrayList<>();
        for (Path child : dir) {
            String name = child.getName(child.getNameCount() - 1).toString();
            if (name.endsWith("/"))
                name = name.substring(0, name.length() - 1);
            result.add(name);
        }

        return result.toArray(new String[result.size()]);
    } catch (IOException ex) {
        return new String[0]; //huh?
    }
}
项目:incubator-netbeans    文件:MiscUtils.java   
public static void deleteHeapTempFiles() {
    if (Platform.isWindows()) { // this is workaroud for JDK bug #6359560

        try {
            File tempDir = new File(System.getProperty("java.io.tmpdir")); // NOI18N
            DirectoryStream<Path> files = Files.newDirectoryStream(tempDir.toPath());

            try {
                for (Path p : files) {
                    String fname = p.toFile().getName();

                    if (fname.startsWith("NBProfiler") && (fname.endsWith(".map") || fname.endsWith(".ref") || fname.endsWith(".gc"))) { // NOI18N
                        Files.delete(p);
                    }
                }
            } finally {
                files.close();
            }
        } catch (IOException ex) {
            System.err.println("deleteHeapTempFiles failed");   // NOI18N
            ex.printStackTrace();
        }
    }
}
项目:hadoop-oss    文件:DiskChecker.java   
/**
 * Recurse down a directory tree, checking all child directories.
 * @param dir
 * @throws DiskErrorException
 */
public static void checkDirs(File dir) throws DiskErrorException {
  checkDir(dir);
  IOException ex = null;
  try (DirectoryStream<java.nio.file.Path> stream =
      Files.newDirectoryStream(dir.toPath())) {
    for (java.nio.file.Path entry: stream) {
      File child = entry.toFile();
      if (child.isDirectory()) {
        checkDirs(child);
      }
    }
  } catch (DirectoryIteratorException de) {
    ex = de.getCause();
  } catch (IOException ie) {
    ex = ie;
  }
  if (ex != null) {
    throw new DiskErrorException("I/O error when open a directory: "
        + dir.toString(), ex);
  }
}
项目:hadoop-oss    文件:IOUtils.java   
/**
 * Return the complete list of files in a directory as strings.<p/>
 *
 * This is better than File#listDir because it does not ignore IOExceptions.
 *
 * @param dir              The directory to list.
 * @param filter           If non-null, the filter to use when listing
 *                         this directory.
 * @return                 The list of files in the directory.
 *
 * @throws IOException     On I/O error
 */
public static List<String> listDirectory(File dir, FilenameFilter filter)
    throws IOException {
  ArrayList<String> list = new ArrayList<String> ();
  try (DirectoryStream<Path> stream =
           Files.newDirectoryStream(dir.toPath())) {
    for (Path entry: stream) {
      String fileName = entry.getFileName().toString();
      if ((filter == null) || filter.accept(dir, fileName)) {
        list.add(fileName);
      }
    }
  } catch (DirectoryIteratorException e) {
    throw e.getCause();
  }
  return list;
}
项目:Elasticsearch    文件:HunspellService.java   
/**
 * Scans the hunspell directory and loads all found dictionaries
 */
private void scanAndLoadDictionaries() throws IOException {
    if (Files.isDirectory(hunspellDir)) {
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(hunspellDir)) {
            for (Path file : stream) {
                if (Files.isDirectory(file)) {
                    try (DirectoryStream<Path> inner = Files.newDirectoryStream(hunspellDir.resolve(file), "*.dic")) {
                        if (inner.iterator().hasNext()) { // just making sure it's indeed a dictionary dir
                            try {
                                dictionaries.getUnchecked(file.getFileName().toString());
                            } catch (UncheckedExecutionException e) {
                                // The cache loader throws unchecked exception (see #loadDictionary()),
                                // here we simply report the exception and continue loading the dictionaries
                                logger.error("exception while loading dictionary {}", file.getFileName(), e);
                            }
                        }
                    }
                }
            }
        }
    }
}
项目:openjdk-jdk10    文件:JdepsConfiguration.java   
private List<Path> getClassPaths(String cpaths) {
    if (cpaths.isEmpty()) {
        return Collections.emptyList();
    }
    List<Path> paths = new ArrayList<>();
    for (String p : cpaths.split(File.pathSeparator)) {
        if (p.length() > 0) {
            // wildcard to parse all JAR files e.g. -classpath dir/*
            int i = p.lastIndexOf(".*");
            if (i > 0) {
                Path dir = Paths.get(p.substring(0, i));
                try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.jar")) {
                    for (Path entry : stream) {
                        paths.add(entry);
                    }
                } catch (IOException e) {
                    throw new UncheckedIOException(e);
                }
            } else {
                paths.add(Paths.get(p));
            }
        }
    }
    return paths;
}
项目:family-tree-xml-parser    文件:ScheduledFileReaderTest.java   
@Test
@SuppressWarnings("unchecked")
public void doNothingWhenPathCannotBeParsed() throws Exception {
  mockStatic(Files.class);

  when(validator.isValid(path)).thenReturn(true);

  DirectoryStream<Path> directoryStream = mock(DirectoryStream.class);
  when(Files.newDirectoryStream(path, "*.xml")).thenReturn(directoryStream);

  Iterator<Path> iterator = mock(Iterator.class);
  when(directoryStream.iterator()).thenReturn(iterator);

  when(iterator.hasNext()).thenReturn(true, false);
  Path file = mock(Path.class);
  when(iterator.next()).thenReturn(file);

  when(xmlParser.parseXml(file)).thenReturn(Optional.empty());

  scheduledFileReader.parseXmlFiles();

  verifyZeroInteractions(service);

  verifyStatic(Files.class);
  Files.newDirectoryStream(path, "*.xml");
}
项目:Elasticsearch    文件:FsBlobContainer.java   
@Override
public ImmutableMap<String, BlobMetaData> listBlobsByPrefix(String blobNamePrefix) throws IOException {
    // using MapBuilder and not ImmutableMap.Builder as it seems like File#listFiles might return duplicate files!
    MapBuilder<String, BlobMetaData> builder = MapBuilder.newMapBuilder();

    blobNamePrefix = blobNamePrefix == null ? "" : blobNamePrefix;
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(path, blobNamePrefix + "*")) {
        for (Path file : stream) {
            final BasicFileAttributes attrs = Files.readAttributes(file, BasicFileAttributes.class);
            if (attrs.isRegularFile()) {
                builder.put(file.getFileName().toString(), new PlainBlobMetaData(file.getFileName().toString(), attrs.size()));
            }
        }
    }
    return builder.immutableMap();
}
项目:elasticsearch_my    文件:FileUtils.java   
/**
 * Returns the json files found within the directory provided as argument.
 * Files are looked up in the classpath, or optionally from {@code fileSystem} if its not null.
 */
public static Set<Path> findJsonSpec(FileSystem fileSystem, String optionalPathPrefix, String path) throws IOException {
    Path dir = resolveFile(fileSystem, optionalPathPrefix, path, null);

    if (!Files.isDirectory(dir)) {
        throw new NotDirectoryException(path);
    }

    Set<Path> jsonFiles = new HashSet<>();
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
        for (Path item : stream) {
            if (item.toString().endsWith(JSON_SUFFIX)) {
                jsonFiles.add(item);
            }
        }
    }

    if (jsonFiles.isEmpty()) {
        throw new NoSuchFileException(path, null, "no json files found");
    }

    return jsonFiles;
}
项目:openjdk-jdk10    文件:ExplodedImage.java   
@Override
public List<Node> getChildren() {
    if (!isDirectory())
        throw new IllegalArgumentException("not a directory: " + getNameString());
    if (children == null) {
        List<Node> list = new ArrayList<>();
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
            for (Path p : stream) {
                p = explodedModulesDir.relativize(p);
                String pName = MODULES + nativeSlashToFrontSlash(p.toString());
                Node node = findNode(pName);
                if (node != null) {  // findNode may choose to hide certain files!
                    list.add(node);
                }
            }
        } catch (IOException x) {
            return null;
        }
        children = list;
    }
    return children;
}
项目:elasticsearch_my    文件:NodeEnvironment.java   
/**
 * Returns all folder names in ${data.paths}/nodes/{node.id}/indices folder
 */
public Set<String> availableIndexFolders() throws IOException {
    if (nodePaths == null || locks == null) {
        throw new IllegalStateException("node is not configured to store local location");
    }
    assertEnvIsLocked();
    Set<String> indexFolders = new HashSet<>();
    for (NodePath nodePath : nodePaths) {
        Path indicesLocation = nodePath.indicesPath;
        if (Files.isDirectory(indicesLocation)) {
            try (DirectoryStream<Path> stream = Files.newDirectoryStream(indicesLocation)) {
                for (Path index : stream) {
                    if (Files.isDirectory(index)) {
                        indexFolders.add(index.getFileName().toString());
                    }
                }
            }
        }
    }
    return indexFolders;

}
项目:elasticsearch_my    文件:MetaDataStateFormat.java   
private void cleanupOldFiles(final String prefix, final String currentStateFile, Path[] locations) throws IOException {
    final DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
        @Override
        public boolean accept(Path entry) throws IOException {
            final String entryFileName = entry.getFileName().toString();
            return Files.isRegularFile(entry)
                    && entryFileName.startsWith(prefix) // only state files
                    && currentStateFile.equals(entryFileName) == false; // keep the current state file around
        }
    };
    // now clean up the old files
    for (Path dataLocation : locations) {
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dataLocation.resolve(STATE_DIR_NAME), filter)) {
            for (Path stateFile : stream) {
                Files.deleteIfExists(stateFile);
            }
        }
    }
}
项目:elasticsearch_my    文件:MetaDataStateFormat.java   
long findMaxStateId(final String prefix, Path... locations) throws IOException {
    long maxId = -1;
    for (Path dataLocation : locations) {
        final Path resolve = dataLocation.resolve(STATE_DIR_NAME);
        if (Files.exists(resolve)) {
            try (DirectoryStream<Path> stream = Files.newDirectoryStream(resolve, prefix + "*")) {
                for (Path stateFile : stream) {
                    final Matcher matcher = stateFilePattern.matcher(stateFile.getFileName().toString());
                    if (matcher.matches()) {
                        final long id = Long.parseLong(matcher.group(1));
                        maxId = Math.max(maxId, id);
                    }
                }
            }
        }
    }
    return maxId;
}
项目:openjdk-jdk10    文件:PollingWatchService.java   
PollingWatchKey(Path dir, PollingWatchService watcher, Object fileKey)
    throws IOException
{
    super(dir, watcher);
    this.fileKey = fileKey;
    this.valid = true;
    this.tickCount = 0;
    this.entries = new HashMap<Path,CacheEntry>();

    // get the initial entries in the directory
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
        for (Path entry: stream) {
            // don't follow links
            long lastModified =
                Files.getLastModifiedTime(entry, LinkOption.NOFOLLOW_LINKS).toMillis();
            entries.put(entry.getFileName(), new CacheEntry(lastModified, tickCount));
        }
    } catch (DirectoryIteratorException e) {
        throw e.getCause();
    }
}
项目:elasticsearch_my    文件:InstallPluginCommand.java   
/** Copies the files from {@code tmpBinDir} into {@code destBinDir}, along with permissions from dest dirs parent. */
private void installBin(PluginInfo info, Path tmpBinDir, Path destBinDir) throws Exception {
    if (Files.isDirectory(tmpBinDir) == false) {
        throw new UserException(ExitCodes.IO_ERROR, "bin in plugin " + info.getName() + " is not a directory");
    }
    Files.createDirectory(destBinDir);
    setFileAttributes(destBinDir, BIN_DIR_PERMS);

    try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpBinDir)) {
        for (Path srcFile : stream) {
            if (Files.isDirectory(srcFile)) {
                throw new UserException(
                    ExitCodes.DATA_ERROR,
                    "Directories not allowed in bin dir for plugin " + info.getName() + ", found " + srcFile.getFileName());
            }

            Path destFile = destBinDir.resolve(tmpBinDir.relativize(srcFile));
            Files.copy(srcFile, destFile);
            setFileAttributes(destFile, BIN_FILES_PERMS);
        }
    }
    IOUtils.rm(tmpBinDir); // clean up what we just copied
}
项目:googles-monorepo-demo    文件:MoreFiles.java   
/**
 * Insecure recursive delete for file systems that don't support {@code SecureDirectoryStream}.
 * Returns a collection of exceptions that occurred or null if no exceptions were thrown.
 */
@Nullable
private static Collection<IOException> deleteRecursivelyInsecure(Path path) {
  Collection<IOException> exceptions = null;
  try {
    if (Files.isDirectory(path, NOFOLLOW_LINKS)) {
      try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
        exceptions = deleteDirectoryContentsInsecure(stream);
      }
    }

    // If exceptions is not null, something went wrong trying to delete the contents of the
    // directory, so we shouldn't try to delete the directory as it will probably fail.
    if (exceptions == null) {
      Files.delete(path);
    }

    return exceptions;
  } catch (IOException e) {
    return addException(exceptions, e);
  }
}
项目:elasticsearch_my    文件:CorruptedFileIT.java   
private List<Path> findFilesToCorruptOnNode(final String nodeName, final ShardId shardId) throws IOException {
    List<Path> files = new ArrayList<>();
    for (Path path : internalCluster().getInstance(NodeEnvironment.class, nodeName).availableShardPaths(shardId)) {
        path = path.resolve("index");
        if (Files.exists(path)) { // multi data path might only have one path in use
            try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
                for (Path item : stream) {
                    if (item.getFileName().toString().startsWith("segments_")) {
                        files.add(item);
                    }
                }
            }
        }
    }
    return files;
}
项目:jdk8u-jdk    文件:LambdaAsm.java   
static void verifyInvokerBytecodeGenerator() throws Exception {
    int count = 0;
    int mcount = 0;
    try (DirectoryStream<Path> ds = newDirectoryStream(new File(".").toPath(),
            // filter in lambda proxy classes
            "A$I$$Lambda$?.class")) {
        for (Path p : ds) {
            System.out.println(p.toFile());
            ClassFile cf = ClassFile.read(p.toFile());
            // Check those methods implementing Supplier.get
            mcount += checkMethod(cf, "get");
            count++;
        }
    }
    if (count < 3) {
        throw new RuntimeException("unexpected number of files, "
                + "expected atleast 3 files, but got only " + count);
    }
    if (mcount < 3) {
        throw new RuntimeException("unexpected number of methods, "
                + "expected atleast 3 methods, but got only " + mcount);
    }
}
项目:alfresco-repository    文件:DirectoryAnalyserImpl.java   
private List<Path> listFiles(Path sourceDirectory, DirectoryStream.Filter<Path> filter)
{
    List<Path> files = new ArrayList<Path>();
    try (DirectoryStream<Path> paths = (filter != null) ? Files.newDirectoryStream(sourceDirectory, filter) : Files.newDirectoryStream(sourceDirectory))
    {
        for (Iterator<Path> it = paths.iterator(); it.hasNext();) 
        {
           files.add(it.next());
        }
    }
    catch (IOException e)
    {
        log.error(e.getMessage());
    }
    return files;
}
项目:openjdk-jdk10    文件:Basic.java   
@Test(dataProvider = "packagesLinkedDirs")
public void dirStreamPackagesDirTest(String dirName) throws IOException {
    FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
    Path path = fs.getPath(dirName);

    int childCount = 0, dirPrefixOkayCount = 0;
    try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(path)) {
        for (Path child : dirStream) {
            childCount++;
            if (child.toString().startsWith(dirName)) {
                dirPrefixOkayCount++;
            }
        }
    }

    assertTrue(childCount != 0);
    assertEquals(dirPrefixOkayCount, childCount);
}
项目:openjdk-systemtest    文件:PathDirectoryStreamTest.java   
public void testDirectoryStreamAllItems() throws IOException {  
    Path newDirectory = DIRECTORY_STREAM_FILE_DIR;  
    List<String> dirGlob = new LinkedList<String>();    
    DirectoryStream<Path> directoryContents = Files.newDirectoryStream(newDirectory);

    try {
        for (Path path: directoryContents) {
            // Just check we aren't getting hidden files
            if (path.toString().endsWith("txt")) {
                dirGlob.add(path.toString());
            }
        }
    } finally {
        directoryContents.close();
    }

    if(!ReiserSpotter.getIsReiser()){
        assertEquals("Checking for correct number of files return (no filter) found " + Arrays.toString(dirGlob.toArray()) +
                " actual total list is " + Arrays.toString(files.toArray()),
                NUMBER_OF_FILES, dirGlob.size());
    }   
}
项目:openjdk-jdk10    文件:LambdaAsm.java   
static void verifyInvokerBytecodeGenerator() throws Exception {
    int count = 0;
    int mcount = 0;
    try (DirectoryStream<Path> ds = newDirectoryStream(new File(".").toPath(),
            // filter in lambda proxy classes
            "A$I$$Lambda$*.class")) {
        for (Path p : ds) {
            System.out.println(p.toFile());
            ClassFile cf = ClassFile.read(p.toFile());
            // Check those methods implementing Supplier.get
            mcount += checkMethod(cf, "get");
            count++;
        }
    }
    if (count < 3) {
        throw new RuntimeException("unexpected number of files, "
                + "expected atleast 3 files, but got only " + count);
    }
    if (mcount < 3) {
        throw new RuntimeException("unexpected number of methods, "
                + "expected atleast 3 methods, but got only " + mcount);
    }
}
项目:openjdk-systemtest    文件:PathDirectoryStreamTest.java   
public void testDirectoryStreamGlobSomeItems() throws IOException {     
    final int EXPECTED_NUMBER_OF_FILES = 1;
    Path newDirectory = DIRECTORY_STREAM_FILE_DIR;      
    List<String> dirGlob = new LinkedList<String>();        
    DirectoryStream<Path> directoryContents = Files.newDirectoryStream(newDirectory, "*1.txt");

    try {
        for (Path path: directoryContents) {
            dirGlob.add(path.toString());
        }
    } finally {
        directoryContents.close();
    }

    if(!ReiserSpotter.getIsReiser()){
        assertEquals("Checking for correct number of files return (globbed on ends in '1') found " + Arrays.toString(dirGlob.toArray()) +
                " actual total list is (from which we expect a subset)" + Arrays.toString(files.toArray()), 
                EXPECTED_NUMBER_OF_FILES, dirGlob.size());
    }       
}
项目:openjdk-systemtest    文件:PathDirectoryStreamTest.java   
public void testDirectoryStreamFilterAllItems() throws IOException {        
    final int EXPECTED_NUMBER_OF_FILES = 10;
    Path newDirectory = DIRECTORY_STREAM_FILE_DIR;      
    List<String> dirGlob = new LinkedList<String>();        
    DirectoryStream<Path> directoryContents = Files.newDirectoryStream(newDirectory, new DirectoryStream.Filter<Path>() {
        @Override
        public boolean accept(Path entry) throws IOException {
            return true;
        }       
    });

    try {
        for (Path path: directoryContents) {
            dirGlob.add(path.toString());
        }
    } finally {
        directoryContents.close();
    }

    if(!ReiserSpotter.getIsReiser()){
        assertEquals("Checking for correct number of files return (filtered on all)  found " + Arrays.toString(dirGlob.toArray()) +
                " actual total list is " + Arrays.toString(files.toArray()), 
                EXPECTED_NUMBER_OF_FILES, dirGlob.size());
    }       
}
项目:guava-mock    文件:MoreFiles.java   
/**
 * Insecure recursive delete for file systems that don't support {@code SecureDirectoryStream}.
 * Returns a collection of exceptions that occurred or null if no exceptions were thrown.
 */
@Nullable
private static Collection<IOException> deleteRecursivelyInsecure(Path path) {
  Collection<IOException> exceptions = null;
  try {
    if (Files.isDirectory(path, NOFOLLOW_LINKS)) {
      try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
        exceptions = deleteDirectoryContentsInsecure(stream);
      }
    }

    // If exceptions is not null, something went wrong trying to delete the contents of the
    // directory, so we shouldn't try to delete the directory as it will probably fail.
    if (exceptions == null) {
      Files.delete(path);
    }

    return exceptions;
  } catch (IOException e) {
    return addException(exceptions, e);
  }
}
项目:tdd-pingpong    文件:SubmissionPackagingService.java   
private List<Path> getDirectoryEntries(Path directory) throws IOException {
  List<Path> entries = new ArrayList<>();

  try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(directory)) {
    for (Path entry : directoryStream) {
      if (Files.isDirectory(entry)) {
        List<Path> subEntries = getDirectoryEntries(entry);
        entries.addAll(subEntries);
      } else {
        entries.add(entry);
      }
    }
  }

  return entries;
}
项目:openjdk-jdk10    文件:Locations.java   
@Override
Iterable<Set<Location>> listLocationsForModules() throws IOException {
    if (!listed && outputDir != null) {
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(outputDir)) {
            for (Path p : stream) {
                getLocationForModule(p.getFileName().toString());
            }
        }
        listed = true;
    }

    if (moduleTable == null || moduleTable.isEmpty())
        return Collections.emptySet();

    return Collections.singleton(moduleTable.locations());
}
项目:flume-release-1.7.0    文件:TaildirMatcher.java   
/**
 * Package accessible constructor. From configuration context it represents a single
 * <code>filegroup</code> and encapsulates the corresponding <code>filePattern</code>.
 * <code>filePattern</code> consists of two parts: first part has to be a valid path to an
 * existing parent directory, second part has to be a valid regex
 * {@link java.util.regex.Pattern} that match any non-hidden file names within parent directory
 * . A valid example for filePattern is <code>/dir0/dir1/.*</code> given
 * <code>/dir0/dir1</code> is an existing directory structure readable by the running user.
 * <p></p>
 * An instance of this class is created for each fileGroup
 *
 * @param fileGroup arbitrary name of the group given by the config
 * @param filePattern parent directory plus regex pattern. No wildcards are allowed in directory
 *                    name
 * @param cachePatternMatching default true, recommended in every setup especially with huge
 *                             parent directories. Don't set when local system clock is not used
 *                             for stamping mtime (eg: remote filesystems)
 * @see TaildirSourceConfigurationConstants
 */
TaildirMatcher(String fileGroup, String filePattern, boolean cachePatternMatching) {
  // store whatever came from configuration
  this.fileGroup = fileGroup;
  this.filePattern = filePattern;
  this.cachePatternMatching = cachePatternMatching;

  // calculate final members
  File f = new File(filePattern);
  this.parentDir = f.getParentFile();
  String regex = f.getName();
  final PathMatcher matcher = FS.getPathMatcher("regex:" + regex);
  this.fileFilter = new DirectoryStream.Filter<Path>() {
    @Override
    public boolean accept(Path entry) throws IOException {
      return matcher.matches(entry.getFileName()) && !Files.isDirectory(entry);
    }
  };

  // sanity check
  Preconditions.checkState(parentDir.exists(),
      "Directory does not exist: " + parentDir.getAbsolutePath());
}
项目:va-vedem-api    文件:EmailService.java   
private static Map<String, String> listFormulare(String directory) {
    Map<String, String> files = new HashMap<>();

    try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(Paths.get(directory))) {
        for (Path path : directoryStream) {
            files.put(path.getFileName().toString(), path.toAbsolutePath().toString());
            // TODO change sout to logger
            System.out.println(path.toAbsolutePath().toString());
        }
    } catch (IOException ex) {
        logger.error(ex);
        throw new VaVedemEmailException("Eroare la citire formular");
    }

    return files;
}
项目:xm-ms-timeline    文件:AbstractCassandraTest.java   
private static void applyScripts(CQLDataLoader dataLoader, String cqlDir, String pattern) throws IOException, URISyntaxException {
    URL dirUrl = ClassLoader.getSystemResource(cqlDir);
    if (dirUrl == null) { // protect for empty directory
        return;
    }

    List<String> scripts = new ArrayList<>();
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(dirUrl.toURI()), pattern)) {
        for (Path entry : stream) {
            scripts.add(entry.getFileName().toString());
        }
    }
    Collections.sort(scripts);

    for (String fileName : scripts) {
        dataLoader.load(new ClassPathCQLDataSet(cqlDir + fileName, false, false, CASSANDRA_UNIT_KEYSPACE));
    }
}
项目:fwm    文件:WorldFileUtil.java   
public File addMultimedia(File incoming){
    try{
        DirectoryStream<Path> stream = Files.newDirectoryStream(new File(multimediaLocation).toPath());
        List<Integer> files = new ArrayList<Integer>();
        for(Path f: stream){
            try{
                files.add(Integer.parseInt(f.getFileName().toString().substring(0, f.getFileName().toString().lastIndexOf("."))));
            }catch(NumberFormatException e){
                log.error(e);
            }
        }
        // sort our list so that we can put it back. 
        int max=0;
        for(Integer i: files){
            if(i > max){
                max = i;
            }
        }

        log.debug("Incomin file name on add multimedia: " + incoming.getName());
        String incomingFileEnd = incoming.getName().substring(incoming.getName().lastIndexOf("."));
        File saved = null;
        saved = copyFile(incoming, new File(multimediaLocation + String.valueOf(max + 1) + incomingFileEnd));
        return saved;
    }catch(IOException ex){
        log.error(ex);
        return null;
    }
}
项目:jmonkeybuilder    文件:FolderResourceElement.java   
@Override
@FromAnyThread
public @Nullable Array<ResourceElement> getChildren(@NotNull final Array<String> extensionFilter, final boolean onlyFolders) {
    if (!Files.isDirectory(file)) return null;

    final Array<ResourceElement> elements = ArrayFactory.newArray(ResourceElement.class);

    try (final DirectoryStream<Path> stream = Files.newDirectoryStream(file)) {
        stream.forEach(child -> {

            final String fileName = child.getFileName().toString();

            if (fileName.startsWith(".")) {
                return;
            } else if (Files.isDirectory(child)) {
                elements.add(createFor(child));
                return;
            }

            if (onlyFolders) return;

            final String extension = FileUtils.getExtension(child);

            if (extensionFilter.isEmpty() || extensionFilter.contains(extension)) {
                elements.add(createFor(child));
            }
        });

    } catch (final IOException e) {
        LOGGER.warning(this, e);
    }

    return elements;
}
项目:mux2fs    文件:Fixture.java   
@SuppressWarnings("unchecked")
protected DirectoryStream<Path> mockDirectoryStream(Path root, List<Path> entries)
        throws IOException {
    DirectoryStream<Path> directoryStream = mock(DirectoryStream.class);
    when(directoryStream.iterator()).thenAnswer((inv) -> entries.iterator());
    when(directoryStream.spliterator()).thenAnswer((inv) -> entries.spliterator());
    when(root.getFileSystem().provider().newDirectoryStream(eq(root), any())).thenReturn(directoryStream);
    return directoryStream;
}
项目:powsybl-core    文件:DefaultLocalFolder.java   
@Override
public List<Path> getChildPaths() {
    List<Path> childPaths = new ArrayList<>();
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
        for (Path childPath : stream) {
            childPaths.add(childPath);
        }
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
    return childPaths;
}
项目:openjdk-jdk10    文件:FaultyFileSystem.java   
@Override
public DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
    throws IOException
{
    triggerEx(dir, "newDirectoryStream");
    return wrap(Files.newDirectoryStream(unwrap(dir), filter));
}
项目:openapi-annotation-processor    文件:PathUtils.java   
/**
 * @param path The path to scan
 * @return The direct subdiretories of the provided path
 */
public static List<Path> subDirectories(Path path) {
    List<Path> directories = new ArrayList<>();
    try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(path)) {
        for (Path subPath : directoryStream) {
            if (!Files.isDirectory(subPath)) {
                continue;
            }
            directories.add(subPath);
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    return directories;
}
项目:fuse-nio-adapter    文件:ReadOnlyDirectoryHandler.java   
private long countSubDirs(Path path) throws IOException {
    try (DirectoryStream<Path> ds = Files.newDirectoryStream(path, Files::isDirectory)) {
        return Iterables.size(ds);
    } catch (DirectoryIteratorException e) {
        throw new IOException(e);
    }
}
项目:family-tree-xml-parser    文件:ScheduledFileReader.java   
@Scheduled(fixedDelayString = "${checking-parameters.processing-interval}")
public void parseXmlFiles() {
  Path path = Paths.get(inputDirectory);

  if (pathValidator.isValid(path)) {
    log.debug("Checking directory: {}", path);
    try (DirectoryStream<Path> stream = getDirectory(path)) {
      for (Path file : stream) {
        xmlParser.parseXml(file).ifPresent(service::insertDoc);
      }
    } catch (Exception e) {
      log.error("XML file has invalid format", e);
    }
  }
}