Wie man alle Dateien eines Ordners in Java liest

Mohammad Irfan 12 Oktober 2023
  1. Wie man alle Dateien eines Ordners in Java liest
  2. Alle Dateien eines Ordners mit der Klasse Files in Java lesen
  3. Lesen aller Dateien aus einem Ordner mit der newDirectoryStream() Methode in Java
  4. Lesen aller Dateien eines Ordners mit der walkFileTree() Methode in Java
Wie man alle Dateien eines Ordners in Java liest

Dieses Tutorial führt ein, wie man alle Dateien eines Ordners in Java liest und listet einige Beispielcodes auf, um es zu verstehen.

Es gibt verschiedene Möglichkeiten, alle Dateien eines Ordners zu erhalten. Hier könnten wir die Klassen File, Files und DirectoryStream und viele andere verwenden. Lassen Sie uns die Beispiele sehen.

Wie man alle Dateien eines Ordners in Java liest

Hier verwenden wir die Klasse File, um alle Dateien und Ordner im Quellverzeichnis zu sammeln, und verwenden dann die Methode isDirectory(), um zu prüfen, ob es sich um eine Datei oder einen Ordner handelt. Siehe das Beispiel unten.

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);
  }
}

Alle Dateien eines Ordners mit der Klasse Files in Java lesen

Wenn Sie stream verwenden möchten, verwenden Sie die Methode walk() der Klasse Files, die einen Path-Stream zurückgibt. Danach verwenden wir die Methode filter(), um nur Dateien zu sammeln und verwenden forEach(), um sie zu drucken.

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);
    }
  }
}

Lesen aller Dateien aus einem Ordner mit der newDirectoryStream() Methode in Java

Hier verwenden wir die Klasse Files und ihre Methode newDirectoryStream(), die einen Strom von Path zurückgibt. Danach verwenden wir eine for-each-Schleife, um die Liste der Dateien zu iterieren und den Dateinamen zu drucken.

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);
    }
  }
}

Lesen aller Dateien eines Ordners mit der walkFileTree() Methode in Java

Hier verwenden wir die Methode walkFileTree() der Klasse Files, die zwei Argumente benötigt: den Quellordner und die Referenz SimpleFileVisitor. Siehe das Beispiel unten.

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);
  }
}

Verwandter Artikel - Java File

Verwandter Artikel - Java IO