Rekursive Dateisuche

Status
Nicht offen für weitere Antworten.

alaska94

Aktives Mitglied
Hallo,

ich möhte in einer Verzeichnisstruktur Dateien mit einer bestimmten Endung suchen.
Ich möchte alle Dateien suchen die mit der Dateiendung.txt enden.
Ich möchte zählen wieviele Dateien mit dieser Endung in jedem Ordner sind.
Das erse Problem ist, dass ich die Verzeichnisstruktur durchsuchen muss. Danach die Dateiendungen und dann noch jeweils in jedem Ordner zählen wieviele Dateien mit der Endung .txt sind.

Kann mir einer sagen wie ich das realisiere?
Wie ist der Befehl um die Endungen auszulesen?

Gruß

Markus
 

Murray

Top Contributor
Sieh dir mal die Klasse java.io.File an, bes. die (überladenen) Methoden list und listFiles sollten interessant sein.

Die Extension kann man nicht direkt auslesen, dazu muss man den String zerlegen.
Code:
public String getExtension( File f) {
  String fn = g.getName();
  int idx = fn.lastIndexOf( ".");
  return (idx < 0) null : fn.substring( idx+1, fn.length()); //-- liefert Extension ohne Punkt
}
 

Bert Brenner

Bekanntes Mitglied
In der Javainsel ist glaub ich auch noch ein Beispiel für das Rekursive wandern durch Verzeichnisse.

PS: Verdammt, hab ich wohl den Editierbutton nicht getroffen, sorry.
 

L-ectron-X

Gesperrter Benutzer
Murray hat gesagt.:
Die Extension kann man nicht direkt auslesen, dazu muss man den String zerlegen.
Code:
public String getExtension( File f) {
  String fn = g.getName();
  int idx = fn.lastIndexOf( ".");
  return (idx < 0) null : fn.substring( idx+1, fn.length()); //-- liefert Extension ohne Punkt
}

Mal davon abgesehen, dass dein Code nicht funktionieren würde, kann man die Dateiextension mit
file.getName().endsWith(suffix) filtern.
Eine Klasse die das erledigt habe ich mal vor einiger Zeit hier gepostet:
http://www.java-forum.org/de/viewtopic.php?t=22482

Eine Rekursion müsste da allerdings noch implementiert werden.
 

Murray

Top Contributor
L-ectron-X hat gesagt.:
Mal davon abgesehen, dass dein Code nicht funktionieren würde, kann man die Dateiextension mit
file.getName().endsWith(suffix) filtern.

Asche auf mein Haupt: zwei Vertipper in so einer kurzen Methode...
Code:
	public String getExtension( File f) {
		String fn = f.getName();
		int idx = fn.lastIndexOf( ".");
		return (idx < 0) ? null : fn.substring( idx+1, fn.length()); //-- liefert Extension ohne Punkt
	}


Aber Du hast natürlich Recht, wenn es - wie in der Aufgabenstellung beschreiben - nur darum geht, zu zählen, wieviele Dateien mit der entsprechenden Erweiterung da sind, reicht endsWith. Allerdings sollte man - ob man nun die Extension als String extrahiert oder mit endsWith vergleicht - im Hinterkopf behalten, dass es Dateisysteme gibt, die zwischen Gross- und Kleinschreibung nicht unterscheiden. Dort würde man wohl erwarten, dass BILD.GIF bei den Dateien mit der Extension ".gif" mitgezählt wird. Die Bedingung müsste in diesem Fall etwas erweitert werden. Aber das ist ja mit beiden Ansätzen möglich.
 

kaie

Bekanntes Mitglied
Hier ist eine einfache rekursive Variante:
Code:
public int zaehleTextdateien( File f )
{
  int n=0;
  File[] list = f.listFiles();
  for( int i=0; i<list.length; i++ )
  {
    if( list[i].isDirectory() )
      n+=zaehleTextdateien(list[i]);
    else if( list[i].getName().toLowerCase().endsWith(".txt")
      n++;
  }
  return n;
}
Einfach aufrufen mit:
Code:
System.out.println( "Anzahl der Textdateien im Hauptverzeichnis: "+zaehleTextdateien( new File("c:\\") );
 

alaska94

Aktives Mitglied
Danke für eure schnelle Hilfe. Ich werde mir mal alles ansehen und mir das zusammenbasteln.
Es wird so laufen , dass ich untersuchen muss ob mehr als 5 Textdateien in einem Ordner sind, wenn es so ist, sollen sie woanderes hin kopiert werden. Wenn nicht geht es in den nächsten Ordner

Gruß

alaska
 

alaska94

Aktives Mitglied
Das Projekt hast sich leider geändert.
Es sind verschiedene Dateien in einem Verzeichnis.
Ich suche jetzt nach einer .txt Datei.
Jetzt muss ich den Namen bilden, dieses ist nicht schwer. Der Pfad besteht aus dem Dateinamen ohne .txt.

Beispiel

Hallo.txt
Pfad=Hallo.

Jetzt muss ich in diesem Verzeichnis die Datein zählen, die mit Hallo anfangen.
Alle Dateien, die mit Hallo anfangen, gehören zu einer Projektgruppe.

Wenn es mehr als 5 sind, sollen sie in ein Verzeichnis geschoben werden, das den gleichen Namen wie den Pfad hat, in diesem Beispiel "Hallo".
Wenn es weniger als 5 sind, sollen sie in das Verzeichnis Mülleimer geschoben werden.
Die Restlichen Dateien, die übrig bleiben, sollen ebenfalls in das Verzeichnis Mülleimer verschoben werden.

1. Problem es gibt mehrerer .txt Dateien in einem Verzeichnis. also auch mehrere Projektgruppen in einem Verzeichnis.
2. Problem es ist leider nicht gesagt, dass die .txt Datei immer als erstes steht.

Wie kann ich die Dateien so vorsortieren, das immer als erstes eine .txt Datei folgt, und anschließend die dazugehörige Projektgruppe?

Gruß

Alaska
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Rekursive Methode Java Basics - Anfänger-Themen 13
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
Viktor A. Kaiser Rekursive Algorithmen Java Basics - Anfänger-Themen 9
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
new_to_coding Rekursive Reihe implementieren Java Basics - Anfänger-Themen 1
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
S Rekursive Kombinationen Java Basics - Anfänger-Themen 6
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
schredder Rekursive Quadratzahlen - Ergebnisprozedur Java Basics - Anfänger-Themen 1
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
L Rekursive Methoden Java Basics - Anfänger-Themen 14
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
J Rekursive Folge (a=a-1) Java Basics - Anfänger-Themen 9
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
D Rekursive Methode Java Basics - Anfänger-Themen 8
R Methoden rekursive Methoden Java Basics - Anfänger-Themen 6
O Quersumme rekursive Methode Java Basics - Anfänger-Themen 3
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
J rekursive Methode Java Basics - Anfänger-Themen 26
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
MiMa Rekursive Dateiliste erstellen mit Dateiendung(en) ?? Java Basics - Anfänger-Themen 4
S Rekursive Methode Java Basics - Anfänger-Themen 8
O Rekursive Methode Java Basics - Anfänger-Themen 4
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
K Rekursive Methode Java Basics - Anfänger-Themen 1
K Rekursive Methode für Fakultät mit BigInteger Java Basics - Anfänger-Themen 10
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
G Harmonische Rekursive Folge Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
P Methoden Rekursive Methode für Potenzen Java Basics - Anfänger-Themen 2
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
S Eine rekursive Lösung Java Basics - Anfänger-Themen 4
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
B Methoden Rekursive Methoden Java Basics - Anfänger-Themen 2
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
C rekursive methode Java Basics - Anfänger-Themen 2
D Methoden Rekursive Methoden Java Basics - Anfänger-Themen 13
R rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
S rekursive folge verbessern Java Basics - Anfänger-Themen 2
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
S Methoden rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
E Rekursive Methode Java Basics - Anfänger-Themen 3
N Methoden Rekursive Fibonaccizahlen mit Array Java Basics - Anfänger-Themen 2
R Rekursive Ausgabe eines Binärbaums Java Basics - Anfänger-Themen 4
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
A Rekursive Methode in Iterative umwandeln Java Basics - Anfänger-Themen 6
S Labyrith Rekursive Wegsuche Java Basics - Anfänger-Themen 4
C Rekursive Methode - Ziffern in Zahl Java Basics - Anfänger-Themen 33
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
L iterative und rekursive Folge Java Basics - Anfänger-Themen 20
G Rekursive Methode Java Basics - Anfänger-Themen 3
A rekursive Listen in Java? Java Basics - Anfänger-Themen 5
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
E Rekursive Methode mit Zufallsarray Java Basics - Anfänger-Themen 6
E Rekursive Methode Java Basics - Anfänger-Themen 18
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
M Rekursive Methode - wo ist der Fehler? Java Basics - Anfänger-Themen 4
J rekursive methode Java Basics - Anfänger-Themen 6
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
J Rekursive Methode Java Basics - Anfänger-Themen 11
G Rekursive Methode Java Basics - Anfänger-Themen 5
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
K Rekursive Methoden Java Basics - Anfänger-Themen 15
K Rekursive Funktion (Verständnissfrage) Java Basics - Anfänger-Themen 5
S Rekursive Bruch potenzierung Java Basics - Anfänger-Themen 2
D rekursive Summenberechnung Java Basics - Anfänger-Themen 8
J Rekursive Methode: Fakultaet berechnen Java Basics - Anfänger-Themen 5
E Rekursive definierten Folge Java Basics - Anfänger-Themen 10
A HILFE! Rekursive Funktion Java Basics - Anfänger-Themen 20
kulturfenster rekursive Binaere Suche Java Basics - Anfänger-Themen 12
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
B Rekursive & schreiben im ArrayList Java Basics - Anfänger-Themen 2
J Rekursive Fkt. Java Basics - Anfänger-Themen 2
K rekursive Funktion mit mehreren Parametern Java Basics - Anfänger-Themen 5
G rekursive Methode Java Basics - Anfänger-Themen 3
N rekursive Beispiele Java Basics - Anfänger-Themen 3
G rekursive u iterative Methode Java Basics - Anfänger-Themen 8
G Rekursive Methode Java Basics - Anfänger-Themen 7
ven000m Rekursive Funktionen - Frage Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben