FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Problem mit Java-Befehl...

Problem mit Java-Befehl... 2002-07-15 12:05
Zaphod
Das Programm soll einfach nur die Dateien in einem Verzeichnis und seinen Unterordnern in eine Textdatei schreiben, wobei die unten angegebene Funktion verwendet wird. Dooferweise klappt das mit den Unterordnern nicht. isDirectory() gibt mir immer false zurück, gleiches passiert, wenn ich isFile() abfrage, weshalb ich das in "else" umbenannt habe (ist natürlich eine schlechte Notlösung, aber..).
Außerdem führt auch die Verwendung von fod.getExtension() zu einem Fehler (damit er nur bestimmte Dateien ausgibt, wollte ich sie mit einer bestehenden Liste von Erweiterungen vergleichen). Was mache ich falsch?

public static String mainRekursion(String str) { File fod = new File(str); String folderFiles = ""; if (fod.isDirectory()) { folderFiles += "\nDirectory: " + fod.getName() + "\n"; String[] folderListe = fod.list(); for(int akku = 0; akku < folderListe.length; i++) { folderFiles += mainRekursion(folderListe[akku]); } } else //if (fod.isFile()) { folderFiles += " - " + fod.getName() + "\n"; } return folderFiles; }

Re: Problem mit Java-Befehl... 2002-07-15 12:16
Popcorn
Hmm. Vielleicht liegt es ja an Deiner Ernährung?

Re: Problem mit Java-Befehl... 2002-07-15 12:25
Zaphod
Ha ha.. Arsch [img]http://images.rapidforum.com/images/i25.gif[/img]
Ich wollte eine ernst gemeinte Antwort haben.

Re: Problem mit Java-Befehl... 2002-07-15 13:31
Anonymer User
Hier kommt Hilfe:
http://de.geocities.com/uweplonus/faq/io.html#rekursivVerzeichnis

Re: Problem mit Java-Befehl... 2002-07-15 14:41
Zaphod
hmm… danke..
aber das ist nicht das, was ich eigentlich wollte. Das Programm dort schreibt das nicht in eine Datei, schon gar nicht in dem Format, das ich will.. und außerdem… ich will ja verstehen, was ich falsch mache..

Re: Problem mit Java-Befehl... 2002-07-15 16:48
Slater
es ist auch ein bisschen interessant, wie das programm drumherum aussieht, und wo es aufgerufen wird, und wo es schon funktioniert vielleicht,
also in richtung welches stammverzeichnis kennt das programm

falls du bluej benutzt (verwegener gedanke, was [img]http://images.rapidforum.com/images/i24.gif[/img]) gibts da ja das altdurchgekaute problem, dass bluej sich selbst die varibale fürs stammverzeichnis auf das java-installationsverzeichnis setzt, sonst sollte es wohl das verzeichis der ausführbaren datei sein,



wenn man das schon mal geklärt hat solltest du mal versuchen,

folderFiles += mainRekursion(folderListe[akku]);

durch

folderFiles += mainRekursion(fod.getAbsolutePath()+ "/" +folderListe[akku]);

zu ersetzen, das könnte helfen,
da (denk ich mal) nach dem bisherigen programmablauf nur im stammverzeichnis des programms nach dem verzeichnis- /dateinamen gesucht wird, es fehlten die "zwischenverzeichnisse"



diese zeile:

for(int akku = 0; akku < folderListe.length; i++)

würd ich auch ersetzen, durch

for(int akku = 0; akku < folderListe.length; akku++) [img]http://images.rapidforum.com/images/i25.gif[/img]




Re: Problem mit Java-Befehl... 2002-07-15 18:57
Anonymer User
okay.. ich hab das programm gerade nicht auf diesem rechner, sodass ich es testen kann, aber im prinzip wird da ansonsten nichts anderes gemacht, als dass eine main-methode diese funktion aufruft und anschließend den string in eine datei schreibt.

das mit dem i hatte ich eigentlich überall statt akku stehen, nur dass ich das hier nicht schreiben kann, da ich sonst nur Kursivschrift erzeuge…

Das mit dem absoluten Pfad hört sich gut an. Danke. Hofentlich klappt das jetzt.

Zappi

Re: Problem mit Java-Befehl... 2002-07-15 21:45
Anonymer User
lool
Soviel zum Thema Plattformunabhängigkeit. Das Programm läuft unter NT einwandfrei, unter XP hat es Probleme mit den Unterordnern… und ich hatte schon angefangen, an mir selbst zu zweifeln..

Zappi

Re: Problem mit Java-Befehl... 2002-07-15 23:34
Crisp
lool
Soviel zum Thema Plattformunabhängigkeit. Das Programm läuft unter NT einwandfrei, unter XP hat es Probleme mit den Unterordnern… und ich hatte schon angefangen, an mir selbst zu zweifeln..

Zappi

Hmm klingt merkwürdig. Denn XP ist nun mal nix anderes als eine aufgemöbelte multimedia NT Version…..NT 5.1.

Re: Problem mit Java-Befehl... 2002-07-15 23:43
Popcorn
Na, vielleicht lässt Zappi - was bei NT ja nicht ging, oder? - das System im FAT16 Format laufen. Das wäre eine Erklärung. Und die Rechner bei denen, na ja, die sind halt alle ein wenig merkwürdig. *Zappi mit ner Möhre vorm Gesicht rumfuchtelt* [img]http://images.rapidforum.com/images/i15.gif[/img]

Re: Problem mit Java-Befehl... 2002-07-16 00:02
Crisp
Na, vielleicht lässt Zappi - was bei NT ja nicht ging, oder? - das System im FAT16 Format laufen. Das wäre eine Erklärung. Und die Rechner bei denen, na ja, die sind halt alle ein wenig merkwürdig. *Zappi mit ner Möhre vorm Gesicht rumfuchtelt* [img]http://images.rapidforum.com/images/i15.gif[/img]

doch doch, auf NT 3.x und 4 konnte man die BootPartition auch im Fat16-Format laufen lassen. Sollte sein System auf Fat16 laufen, hätten wir das Problem gelöst. [img]http://images.rapidforum.com/images/i25.gif[/img]

@Zappi: Was sagt dein Programm (in XP), wenn Du einen Verzeichnisbaum aufzeichnen lassen willst, der nur Ordnernamen im 8.3 Format verwendet?


Re: Problem mit Java-Befehl... 2002-07-16 01:43
Anonymer User
FAT? 8.3 Format? That's all:

import java.io.*; import java.util.*; public class VerzeichnisInfo { public static String mainRekursion(String str) { File fod = new File(str); String folderFiles = ""; if (fod.isDirectory()) { folderFiles += "\nDirectory: " + fod.getName() + "\n"; String[] folderListe = fod.list(); for(int akku = 0; akku < folderListe.length; akku++) { folderFiles += mainRekursion(fod.getAbsolutePath() + "\\" + folderListe[akku]); } } else { folderFiles += " - " + fod.getName() + "\n"; } return folderFiles; } public static void main(String[] args) { File ausgabe = new File("VerzeichnisInfo-" + args[NULL] + ".txt"); //NULL = 0, wird sonst hier aber nicht korrekt angezeigt, siehe auch unten BufferedWriter fos; try { fos = new BufferedWriter(new FileWriter(ausgabe)); fos.write(mainRekursion(args[NULL])); fos.close(); } catch(IOException e) {} } }

Re: Problem mit Java-Befehl... 2002-07-16 09:45
Popcorn
FAT? -> File Access Table (wo da steht, wo sich welche Daten wo auf Deiner Pladde befinden)

8.3 Format? -> Name, Extension. Acht Zeichen für den Anfang, drei fürs Ende. So wie in den guten alten Tagen halt, wo die ausführbare Datei von Carrier Command noch carrier.exe hieß und nicht "Carrier Command, ein Flugzeugträger-Spiel welches einen 286er, 20 MHz, SoundBlaster oder Adlib braucht, habe viel Spaß damit.exe".

Was für Leute Informatik studieren, dat jibt es gar nicht…

Re: Problem mit Java-Befehl... 2002-07-16 13:23
Cyrax
Hehe Björn. Solche Kentnisse gehören bislang auch noch nicht zum täglichen Brot eines Informatikers. Es gibt (gab) ne Menge Leute die wirklich ne Menge Ahnung von Computern haben /hatten. Aber…..