PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : File und Pfade



mwanaheri
13-11-2009, 13:26
Hi, ich komme mir vor wie ein Anfänger mit dem Problem:

Ich muss per Java eine Verzeichnishierarchie durchsuchen und die Dateien der Unterverzeichnisse bearbeiten. Im Prinzip keine große Sache. Die Unterverzeichnisse sollten ja mit file.isDirectory() identifizierbar sein:


public class PrintFileList {
public static void main(String[] args){
File f = new File("(Verzeichnis eintragen)");
String[] list = f.list();
for (int i = 0; i < list.length; i++){
f = new File(list[i]);
if (f.isDirectory()){
System.out.println("DIR " + list[i] + " " + f.getAbsolutePath());
}else{
System.out.println("File " + list[i] + " " + f.getAbsolutePath());
}
}
}
}
Dabei stellt sich aber folgendes Problem:
Lese ich das Verzeichnis der Applikation ("."), so werden Unterverzeichnisse dort richtig erkannt. Lese ich irgend ein anderes Verzeichnis, so wird alles (auch Verzeichnisse) als Datei identifiziert. Als Pfad wird immer der Pfad der Applikation angenommen, nicht der Pfad der gefundenen Dateien.

Kann mir da mal jemand auf die Sprünge helfen?
Das Ganze muss mit Windows und Java 1.4 funktionieren.

mwanaheri
13-11-2009, 13:52
Ok, man muss es nur als Frage posten, dann stößt man auch auf die Lösung:

Der Fehler war, dass ich file.list() genommen habe, was einen Stringarray zurückgibt, der leider nur den einfachen Dateinamen (ohne Pfad) zurückgibt. Wenn ich aus dem die Files ansehen will, dann fehlt denen natürlich der Pfad, weshalb der Pfad der Anwendung genommen wird.

Lasse ich mir hingegen eine Liste mit Files zurückgeben

File[] list = f.listFiles();,

dann haben diese files ihre korrekte Pfadangabe. Dann klappt auch die Abfrage von unterverzeichnissen.