Dateien im Ordner auflisten.

PissPain

Aktives Mitglied
Hallo,
ich möchte Dateien eines Ordners und deren Unterordner auflisten.
Das habe ich bisher auch schon geschafft:
Java:
import java.io.File;

public class ListFile {
	public static void main(String[] args) {
		String[] FILES = getFiles("/" + args[0] + "/", args[1], 64);

		for(String NAME : FILES) {
			if(NAME != null)System.out.println(NAME);
		}
	}
	
	private static String[] getFiles(String DIRECTORY, String ENDING, int LENGTH) {
		String[] FILE_NAMES = new String[LENGTH];
		
		File[] LIST = new File(System.getProperty("user.dir") + DIRECTORY).listFiles();
		
		int i = 0;
		
		for(File FILE : LIST) {
			if(FILE.getName().endsWith(ENDING)) {
				FILE_NAMES[i] = DIRECTORY + FILE.getName();
				i++;
			} else if(FILE.isDirectory()) {
				String[] FILES = getFiles(DIRECTORY + FILE.getName() + "/", ENDING, LENGTH);
				
				for(String NAME : FILES) {
					if(NAME != null) {
						FILE_NAMES[i] = NAME;
						i++;
					}
				}
			}
		}

		return FILE_NAMES;
	}
}

Das Ganze starte ich mit der Konsole und gebe es mit ihr auch wunderbar aus.
Ich muss dem Programm zwei Parameter übergeben, z.b.
Code:
java -jar ListFile.jar src .java
oder in meinem Fall noch
Code:
java ListFile src .java

Das erste Argument steht für den Ordner, also so benötige ich es bei mir und das zweite Argument steht für die Endung.

Nun will ich zwei Dinge verändern.
Ich will das mit den Argumenten so lassen, aber will bei der Ausgabe nicht den Ordner dazu bekommen, der als Argument übergeben wurde. Ein Beispiel:
Die class oder jar ist in einem Ordner "program" und darin ist auch ein anderer Ordner "src".
Jetzt soll jede .java Datei aus diesem src-Ordner ausgegeben werden mit ihrem Package-Namen.
Z.b. /main/Main.java
Doch wird es so ausgegeben: /src/main/Main.java
Ich könnte den String zwar editieren, doch möchte ich, dass der von Anfang an nicht in den String mit gezogen wird.
Also, wie könnte ich das sauber lösen?

Und ihr könnt vllt. sehen, dass im Code, der Methode 64 übergeben wird, das finde ich auch nicht wirklich schön.
Die 64 steht ja für die Länge des Arrays, aber man kann ja nie wissen wie viele Dateien in den Ordnern sind, wie kann ich das auch sauber lösen?

Vielen Dank.
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Ich werde wohl die Strings beim Durchlauf der Forschleife editieren, also den Anfangsordner aus den Strings löschen.
Aber zu dem zweiten Problem könnt ihr noch etwas zu schreiben :)

EDIT: Das erste Problem so gelöst:
Java:
public static void main(String[] args) {
		String DIRECTORY = "/" + args[0] + "/";
		int LENGTH = DIRECTORY.length();
		
		String[] FILES = getFiles(DIRECTORY, args[1], 64);

		for(String NAME : FILES) {
			if(NAME != null)System.out.println(NAME.substring(LENGTH, NAME.length()));
		}
	}
Und genau so, benötige ich es auch :D

Vielen Dank.
 
Zuletzt bearbeitet:

knilch

Bekanntes Mitglied
Hi,
Wieso gibst du der Methode getFiles einen Parameter LENGTH mit? Brauchst du den? So wie dieser in deinem Code eingesetzt ist, wird dieser für die Grösse des String Array FILE_NAMES gebraucht, aber wie du selber schreibst
... Die 64 steht ja für die Länge des Arrays, aber man kann ja nie wissen wie viele Dateien in den Ordnern sind, wie kann ich das auch sauber lösen?
liegt hier der Wurm drin.
Eine Variante, die ohne festgelegte Länge auskommt könnte vielleicht so aussehen: Die Methode walkFileSystem gibt so alle Files und Subdirectories vom aktuellen Ordner aus. Vielleicht hilft dir das weiter...
Java:
public static void main(String[] args) {
	File currentDir = new File("."); // current directory
	walkFileSystem(currentDir);
}

public static void walkFileSystem(File dir) {
	try {
		File[] files = dir.listFiles();
		for (File file : files) {
			if (file.isDirectory()) {
				System.out.println("directory:" + file.getCanonicalPath());
				walkFileSystem(file);
			} else {
				System.out.println("     file:" + file.getCanonicalPath());
			}
		}
	} catch (IOException e) {
		e.printStackTrace();
	}
}
Gruss knilch
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Vielen Dank knilch,
aber die Länge scheint mir nicht so wichtig zu sein, deswegen werde ich einfach eine etwas höhere Zahl nehmen.
Vllt. werde ich die Länge als drittes Argument einlesen, damit ich mehr Kontrolle darüber habe.
Also, meine Variante ist mir einfach lieber.
Trotzdem vielen Dank :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Methoden Dateien im Ordner anzeigen Java Basics - Anfänger-Themen 12
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
T .jar Datei als Ordner benutzen/ Dateien aus .jar Datei auslesen Java Basics - Anfänger-Themen 3
I Dateien in Ordner und Unterordner durchsuchen Java Basics - Anfänger-Themen 18
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
B Ordner in jar dateien einfügen Java Basics - Anfänger-Themen 4
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
J Ordner und Unterordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 7
V .cab Dateien im Win Profil Ordner? Java Basics - Anfänger-Themen 5
P Kompelieren von 2 Java Dateien im selben Ordner Java Basics - Anfänger-Themen 13
J Dateien aus Ordner auslesen bzw. einlesen Java Basics - Anfänger-Themen 4
S Dateien von einem Ordner in den anderen kopieren Java Basics - Anfänger-Themen 2
M ordner überwachen und dateien filtern Java Basics - Anfänger-Themen 3
G Ordner überprüfen und Dateien verschieben Java Basics - Anfänger-Themen 3
A Ordner + Dateien kopieren? Java Basics - Anfänger-Themen 2
M Dateien in einem Ordner, JList Java Basics - Anfänger-Themen 7
K bestimmte Dateien aus Ordner verschieben Java Basics - Anfänger-Themen 5
T Ordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 2
C Dateien im Ordner öffen Java Basics - Anfänger-Themen 16
T ArrayList mit Dateien in die richtigen Ordner eines JTree Java Basics - Anfänger-Themen 16
D Dateien aus Ordner auslesen und in JList anzeigen! Java Basics - Anfänger-Themen 33
E Ganze Ordner und Dateien kopieren Java Basics - Anfänger-Themen 2
S Alle Dateien in einem Ordner zählen Java Basics - Anfänger-Themen 7
T Dateien/Ordner in einem Verzeichnis zählen Java Basics - Anfänger-Themen 13
T zählen von Dateien in Ordner Java Basics - Anfänger-Themen 8
C Text Dateien aus einem Ordner auslesen? Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
I Dateien aus dem Resource Folder laden Java Basics - Anfänger-Themen 2
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
A Zwei XML-Dateien Mergen Java Basics - Anfänger-Themen 14
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
MiMa log4j als separate Dateien in Schleife? Java Basics - Anfänger-Themen 6
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
S Lese- / Schreibfähigkeit von Dateien sicherstellen Java Basics - Anfänger-Themen 1
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
MiMa Formate für Dateien und Pfade? Java Basics - Anfänger-Themen 1
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
J Logging erzeugt zwei dateien.... Java Basics - Anfänger-Themen 7
A Dateien Verschieben Java Basics - Anfänger-Themen 1
M Mehre Dateien parallel kopieren mit Multithreading Java Basics - Anfänger-Themen 8
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
E FTP Dateien hochladen Java Basics - Anfänger-Themen 3
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
M "substring()" mit Dateien und Pfadangaben Java Basics - Anfänger-Themen 5
Voreck Jar Dateien Standart programm ändern Java Basics - Anfänger-Themen 12
K Dateien aus Source-Package verwenden Java Basics - Anfänger-Themen 10
B Dateien aus dem "resource" - Folder kopieren in Verzeichnis Java Basics - Anfänger-Themen 9
B Kopieren von Dateien mit Adminberechtigungen Java Basics - Anfänger-Themen 14
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
X Dateien direkt hintereinander schreiben, Dateiname Java Basics - Anfänger-Themen 25
G Messwerte in 2 Dateien schreiben Java Basics - Anfänger-Themen 20
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
V Mehrere Dateien aus JFileChooser in eine ArrayList speichern Java Basics - Anfänger-Themen 2
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
Bluedaishi for schleife um Dateien wieder zusammen zu fügen Java Basics - Anfänger-Themen 11
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
J Dateien für anderen User "mitgeben" Java Basics - Anfänger-Themen 1
S Dateien mit Java verschieben Java Basics - Anfänger-Themen 6
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
E Dateien werden nicht gelöscht Java Basics - Anfänger-Themen 10
S Class Dateien decompilieren Java Basics - Anfänger-Themen 4
T Fehler beim Schreiben in Dateien! Java Basics - Anfänger-Themen 4
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
Z Mehrere XML-Dateien zu einer zusammenfügen Java Basics - Anfänger-Themen 3
K JAR Dateien einbinden - funkt nicht wie es sollte... Java Basics - Anfänger-Themen 22
M Threads nio Dateien kopieren, Threads und Gui Java Basics - Anfänger-Themen 0
J *.sql Dateien in Java Java Basics - Anfänger-Themen 1
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
M Input/Output Arbeiten mit extrem vielen Dateien Java Basics - Anfänger-Themen 8
R File chooser Dateien in frame anzeigen lassen Java Basics - Anfänger-Themen 5
N tar-Dateien Java Basics - Anfänger-Themen 6
B Methoden Dateien konvertieren Java Basics - Anfänger-Themen 3
L Dateien speichern/auslesen Java Basics - Anfänger-Themen 5
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
U Best Practice Nicht-permanente Links auf Dateien Java Basics - Anfänger-Themen 5
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben