[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei

Einführung

Schön, Sie kennenzulernen. Ich bin ein Webingenieur im ersten Jahr, der im April dieses Jahres als neuer Absolvent angefangen hat. Dies ist der erste Beitrag! Wir werden weiterhin die Fähigkeiten und Fertigkeiten ausgeben, die wir in Zukunft gelernt haben. Ich würde mich freuen, wenn Sie einen Kommentar abgeben könnten, wenn Sie einen Fehler im Code gemacht haben oder wenn dies besser ist. Vielen Dank!

Was du machen willst

Erstellen Sie eine Methode (searchFile-Methode), die den Pfad mit einer bestimmten Datei aus einem Verzeichnis mit unbekannter Anzahl von Ebenen abruft und ausgibt. Suchen Sie hier unter "C: \ tmp" und geben Sie den Dateipfad einschließlich "hoge" im Dateinamen zurück.

Umgebung

Eclipse Oxygen Java8

Verfahren

  1. Speichern Sie die Verzeichnis- / Dateiliste des von der listFile-Methode angegebenen Pfads in einem Array

  2. Nehmen Sie den erfassten Inhalt in einer Schleife heraus, bewerten Sie, ob es sich um eine Datei und einen bedingten Zweig handelt a. Datei → Bewerten Sie, ob die gewünschte Datei vorhanden ist b. Andere → Rekursiver Aufruf der searchFile-Methode

main.java



import java.io.File;

public class Main {
	public static void main(String[] args) {
		//Geben Sie den Pfad an, nach dem Sie suchen möchten
		searchFile("/tmp/");	
	}

	public static void searchFile(String targetPath) {
		File dir = new File(targetPath);
        //Verzeichnis unter dem Pfad/Legen Sie die Datei in ein Array
		File[] list = dir.listFiles();
		
		for(File path : list) {
			if(path.isFile()) {
				//Teilen Sie den erhaltenen Pfad mit einem Schrägstrich"\\"nicht"\\\\"geben
				String[] splitedPath = path.toString().split("\\\\");
				String file = splitedPath[splitedPath.length-1];
					
				if(file.toString().contains("hoge")) {
					System.out.println(path);
				}	
			//Rekursiver Aufruf der Methode, wenn die Datei keine Datei ist
			}else {
				searchFile(path.toString());
			}
		}
	}
}

Ergebnis

\tmp\hogehoge\hoge.txt

Zusammenfassung

Um alle Verzeichnisse zu durchsuchen, für die die Anzahl der Ebenen unbekannt ist, ist es meiner Meinung nach wichtig, einen rekursiven Aufruf durchzuführen, der sich selbst in einem bedingten Zweig aufruft.

Recommended Posts

[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei
[Java] So erhalten Sie das aktuelle Verzeichnis
[JAVA] Nur den Dateinamen abrufen, ausgenommen die Erweiterung
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
Ruft Attribute und Werte aus einer XML-Datei in Java ab
Entpacken Sie die Zip-Datei in Java
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
So ermitteln Sie die Länge einer Audiodatei mit Java
Holen Sie sich das Ergebnis von POST in Java
[Java] Verwendung der File-Klasse
[Java] Ermittelt den Tag eines bestimmten Tages
Was ist das beste Lesen von Dateien (Java)
So erhalten Sie das Datum mit Java
[Java 7] Teilen Sie die Java-Liste und führen Sie den Prozess aus
Java: Platzieren Sie die ResourceBundle-Eigenschaftendatei an einer beliebigen Stelle
[Java] Ermitteln Sie das Datum mit der LocalDateTime-Klasse
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] Holen Sie sich MimeType aus dem Inhalt der Datei mit Apathce Tika [Kotlin]
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
[Java] Verstehe den Unterschied zwischen List und Set
In Bezug auf transiente Modifikatoren und Serialisierung in Java
JAVA: jar, aar, zeige den Inhalt der Datei an
Java: Laden Sie die Datei herunter und speichern Sie sie an dem im Dialogfeld [Use HttpClient] ausgewählten Speicherort.
[Java] Abrufen und Anzeigen des Datums 10 Tage später mithilfe der von Java 8 hinzugefügten Zeit-API.
[Java] Beispiel eines Programms, das die Maximal- und Minimalwerte von einem Array abruft
[Java] Ermittelt die Länge der Ersatzpaarzeichenfolge
[Java] Der verwirrende Teil von String und StringBuilder
Ich habe die Eigenschaften von Java und .NET verglichen
[Java] Holen Sie sich Bilder mit der Google Custom Search API
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
[Java] Dateien in src / main / resources lesen
Erstellung von Java-Dateien
Java und JavaScript
Wie man Java SE8 Gold bekommt und studiert
XXE und Java
Kompilieren Sie Java und führen Sie es in der Befehlszeile aus
[Java] So erhalten Sie die endgültige umgeleitete URL
Erstellung eines Java-Verzeichnisses
[Java] Konvertieren und Importieren von Dateiwerten mit OpenCSV
Ich möchte die MD5-Prüfsumme einer Datei in Java finden und das Ergebnis als Zeichenfolge in hexadezimaler Notation erhalten.
[Android-Entwicklung] Holen Sie sich mit Java Bilder vom Server und legen Sie sie in ImageView fest! !!
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
[Java] So erhalten Sie die URL der Übergangsquelle
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
<java> Zip-Datei lesen und direkt in String konvertieren
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Greifen Sie auf die War-Datei im Stammverzeichnis von Tomcat zu
Bitte beachten Sie die Aufteilung (Aufteilung) von Java Kotlin Int und Int
Der Vergleich von enum ist == und gleich ist gut [Java]