Java liest die Wege aller Ordner und Dateien unten. Der spezifische Inhalt ist wie folgt
Wenn im Ordner f:/aa, gibt es Ordner und Dateien, wie unten gezeigt:
In Java werden dann alle Dateipfade unter f:/aa auf diese Weise gelesen:
1. Da ArrayList unter den Datei- und Containerklassen verwendet wird, sollten zuerst die folgenden Pakete vorgestellt werden, die zu Beginn vorgestellt werden sollten:
import Java.io.*; import Java.util.*;
2. Die Methode lautet wie folgt, wo die Datei Dirfile alle rechtlichen Pfade mit Ausnahme des Laufwerksbuchstabens wie F: Da der Antriebsbuchstaben einige Systemdateien enthält, wird der Zugriff verweigert, da der Laufwerksbrief gelesen wird, kann eine Null -Zeiger -Ausnahme auftreten.
// Hier fragen wir nur alle Ordner und Dateien auf dem aktuellen Pfad und speichern ihre Pfade auf das Dateiarray // Da wir auf einen Ordner stoßen, in dem nicht alle Unterordner und Dateien abfragen, müssen keine rekursiven öffentlichen statischen statischen ArrayList <string> -Inrich (Datei Direfile) verwendet werden. if (DirFile.Exists ()) {// Nehmen Sie direkt alle Ordner und Dateien im aktuellen Pfad mit ListFiles () zum Speichern aller Ordner und Dateien im aktuellen Pfad in eine Datei -Dateidateien von Datei [] = Dirdfile.listfiles () aus. für (Dateidatei: Dateien) {// Wenn die übergebene Parameter -Dirdfile mit einem Dateiabwehr beendet ist, dh /oder /, dann konstruieren Sie sie so, wie dies (Dirtrarr.add (Dirfile.getPath (). } else {// ansonsten, wenn es keinen Dateitrennzeichen gibt, fügen Sie einen Dateitrennzeichen hinzu und fügen Sie den Dateinamen zum Pfad reichen. }} return dirstrarr; } Die Methode darauf besteht darin, XLSX im neu erstellten Ordner unter f:/aa nicht zu lesen. Wenn während des Lesevorgangs ein Ordner alle Unterordner und Dateien lesen möchte, wird eine Rekursion verwendet und ein globales dynamisches Array wird zuerst festgelegt:
public static arrayList <string> dirallstrarr = new ArrayList <string> ();
Dann lautet die Methode wie folgt:
public static void dirall (Datei Dirfilfile) löst Ausnahme {if (dirirfile.exists ()) {Datei -Dateien [] = Dirfile.Listfiles (); Für (Dateidatei: Dateien) {// Wenn ein Ordner auftritt, wird er rekursiv aufgerufen. if (file.isdirectory ()) {// rekursiv aufrufen DIRALL (Datei); } else {// Wenn Sie auf einen Ordner stoßen, geben Sie ihn in das Array if (dirlfile.getPath (). EndsWith (Datei.Sesparator)) {Dirallstrarr.add (DirFile.getPath () + Datei.getName ()); } else {dirallstrarr.add (Dirfile.getPath () + Datei.Sesparator + Datei.getName ()); }}}}}}}}}}}}}}}}}}}}}}}} Während des Lesevorgangs besteht der Schlüssel darin, die Methode ListFiles () zu verwenden, um die Liste aller Dateien in diesem Ordner zu erhalten. Dann "[java] Ordner und alle Unterfilme und Unterordner verschieben" (klicken Sie, um den Link zu öffnen), und "[java] verwendet Dateieingabe- und Ausgabe -Streams, um den Betrieb des Kopierens aller Dateien in einem Ordner in einen anderen Ordner zu vervollständigen" (klicken, um den Link zu öffnen) und dann rekursiv auf Ordner aufzunehmen.
Die gesamte Methode oben ist eine Java -Datei wie folgt:
import Java.io.*; import Java.util.*; Öffentliche Klasse FileList {// Setzen Sie ein globales dynamisches Array, um den Dateipfad zu speichern // Wenn Sie Ordner durchqueren und alle Unterordner und Dateien enthalten, wird eine Rekursion verwendet, sodass Sie die öffentliche statische ArrayList <string> dirallstrarr = new ArrayList <string> () festlegen sollten. // Hier soll alle Ordner und Dateien unter dem aktuellen Pfad abfragen und ihre Pfade auf das Dateiarray speichern // Da der Ordner nicht alle Unterordner und Dateien enthält, müssen keine Recursion Public static ArrayList <string> Dire (Datei Direfile) verwendet werden. if (Dirfile.Exists ()) {// Nehmen Sie alle Ordner und Dateien direkt im aktuellen Pfad mit Listfiles () zum Speichern aller Ordner und Dateien in einer Datei -Datei -Datei [] = Dirfilfile.Listfiles () aus; für (Dateidatei: Dateien) {// Wenn die übergebene Parameter -Dirdfile mit einem Dateiabwehr beendet ist, dh / oder /, dann konstruieren Sie sie so, wie dies (Dirtrarr.add (Dirfile.getPath (). } else {// ansonsten, wenn es keinen Dateitrennzeichen gibt, fügen Sie einen Dateitrennzeichen hinzu und fügen Sie den Dateinamen zum Pfad reichen. }}} return dirstrarr; } public static void dirall (Datei DireFile) löst eine Ausnahme aus {if (dirirfile.exists ()) {Datei -Dateien [] = Dirfile.Listfiles (); Für (Dateidatei: Dateien) {// Wenn ein Ordner auftritt, wird er rekursiv aufgerufen. if (file.isdirectory ()) {// rekursiv aufrufen DIRALL (Datei); } else {// Wenn ein Ordner auftritt, geben Sie ihn in ein Array if (dirlfile.getPath (). Endswith (Datei.Sesparator)) {Dirallstrarr.add (DirFile.getPath () + Datei.getName ()); } else {dirallstrarr.add (Dirfile.getPath () + Datei.Sesparator + Datei.getName ()); }}}} public static void main (String [] args) löst Ausnahme aus {Datei Dirfile = neue Datei ("f:/aa"); System.out.println (Dir (Dirfile)); Dirall (Dirfile); System.out.println (Dirallstrarr); }}Die Betriebsergebnisse sind wie folgt:
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.