Como ler todos os arquivos de uma pasta em Java

  1. Como ler todos os arquivos de uma pasta em Java
  2. Leia todos os arquivos de uma pasta utilizando a classe Files em Java
  3. Leia todos os arquivos de uma pasta utilizando o newDirectoryStream() metodo em Java
  4. Leia todos os arquivos de uma pasta utilizando o método walkFileTree() em Java
Como ler todos os arquivos de uma pasta em Java

Este tutorial introduz como ler todos os arquivos de uma pasta em Java e lista alguns exemplos de códigos para entendê-la.

Há várias maneiras de obter todos os arquivos de uma pasta. Aqui podemos utilizar as classes File, Files e DirectoryStream, e muitas outras. Vamos ver os exemplos.

Como ler todos os arquivos de uma pasta em Java

Aqui, utilizamos a classe File para coletar todos os arquivos e pastas no diretório de origem e depois utilizamos o método isDirectory() para verificar se se trata de um arquivo ou pasta. Veja o exemplo abaixo.

import java.io.File;
import java.text.ParseException;

public class SimpleTesting {
  public static void findAllFilesInFolder(File folder) {
    for (File file : folder.listFiles()) {
      if (!file.isDirectory()) {
        System.out.println(file.getName());
      } else {
        findAllFilesInFolder(file);
      }
    }
  }
  public static void main(String[] args) throws ParseException {
    File folder = new File("/home/folder/src");
    findAllFilesInFolder(folder);
  }
}

Leia todos os arquivos de uma pasta utilizando a classe Files em Java

Se você quiser utilizar o Stream, utilize o método walk()de classe Files que retorna um Path Stream. Depois disso, utilizamos o método filter() para coletar somente arquivos e utilizamos forEach() para imprimi-los.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    try (Stream<Path> paths = Files.walk(Paths.get("/home/folder/src"))) {
      paths.filter(Files::isRegularFile).forEach(System.out::println);
    }
  }
}

Leia todos os arquivos de uma pasta utilizando o newDirectoryStream() metodo em Java

Aqui, utilizamos a classe Files e seu método newDirectoryStream() que retorna um fluxo de Path. Depois disso, utilizamos um loop for-each para iterar a lista de arquivos e imprimir o nome do arquivo.

import java.io.IOException;
import java.nio.file.DirectoryIteratorException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get("/home/folder/src/"))) {
      for (Path file : stream) {
        System.out.println(file.getFileName());
      }
    } catch (IOException | DirectoryIteratorException ex) {
      System.err.println(ex);
    }
  }
}

Leia todos os arquivos de uma pasta utilizando o método walkFileTree() em Java

Aqui, utilizamos o método walkFileTree() da classe Files que leva dois argumentos: a pasta de origem e a referência SimpleFileVisitor. Veja o exemplo abaixo.

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    SimpleFileVisitor<Path> file = new SimpleFileVisitor<Path>() {
      @Override
      public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs)
          throws IOException {
        System.out.println(filePath);
        return FileVisitResult.CONTINUE;
      }
    };
    Files.walkFileTree(Paths.get("/home/folder/src"), file);
  }
}
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se

Artigo relacionado - Java File

Artigo relacionado - Java IO