Wie man aus meiner Beitragszahl entnehmen kann, bin ich neu hier - daher erstmal ein freundliches Hallo an Alle. 
Wenn mein Problem schon ein paar Mal aufgetaucht ist, bitte nicht hauen, ich weiß einfach nicht, wonach ich suchen muss...
Also folgendes:
Ich schreibe gerade ein Programm, dass Ordnerstrukturen auslesen und in HTML-Dateien abspeichern soll. In der Ausgaberoutine tritt allerdings ein Problem auf. Wenn die Datei, die er beschreiben soll, bereits existiert, funktioniert alles wunderbar - wenn sie dagegen nicht existiert, erstellt das Programm nur leere Datei-"Rümpfe", beschreibt sie jedoch nicht.
D.h. die Dateien können nur entweder erstellt, oder beschrieben werden. Beim zweimaligen, separaten Aufruf funktioniert es. (D.h. bei einem neuen Programmaufruf)
Wenn ich es innerhalb des Programms noch einmal aufrufe, funktioniert es bei fast allen, bis auf ein paar Dateien (die genauso, wie die Anderen erstellt werden). Daher habe ich das Gefühl, dass er die Dateien zu spät, bzw. zu langsam erstellt. Die Kommentare im Code erhalten einige erfolglose Versuche, die ich bereits durchgeführt habe, um das Problem zu lösen.
Wenn die Datei noch nicht existiert erhalte ich im Übrigen beim Erstellen des BufferedWriters eine FileNotFoundException..
Hier mein Code:
Schonmal danke für die Antworten!
€: Ich schreibe übrigens in J# (Mit Visual Studio).. Der gleiche Code hat mit "normalem" Java problemlos funktioniert.
Wenn mein Problem schon ein paar Mal aufgetaucht ist, bitte nicht hauen, ich weiß einfach nicht, wonach ich suchen muss...
Also folgendes:
Ich schreibe gerade ein Programm, dass Ordnerstrukturen auslesen und in HTML-Dateien abspeichern soll. In der Ausgaberoutine tritt allerdings ein Problem auf. Wenn die Datei, die er beschreiben soll, bereits existiert, funktioniert alles wunderbar - wenn sie dagegen nicht existiert, erstellt das Programm nur leere Datei-"Rümpfe", beschreibt sie jedoch nicht.
D.h. die Dateien können nur entweder erstellt, oder beschrieben werden. Beim zweimaligen, separaten Aufruf funktioniert es. (D.h. bei einem neuen Programmaufruf)
Wenn ich es innerhalb des Programms noch einmal aufrufe, funktioniert es bei fast allen, bis auf ein paar Dateien (die genauso, wie die Anderen erstellt werden). Daher habe ich das Gefühl, dass er die Dateien zu spät, bzw. zu langsam erstellt. Die Kommentare im Code erhalten einige erfolglose Versuche, die ich bereits durchgeführt habe, um das Problem zu lösen.
Wenn die Datei noch nicht existiert erhalte ich im Übrigen beim Erstellen des BufferedWriters eine FileNotFoundException..
Hier mein Code:
Code:
private boolean ToHTML(String fileName, Object[] objects) {
if (objects.length > 0) {
try {
File f = new File("html\\src\\" + fileName);
//File f2 = f;
if (!f.exists()) {
File ParDir = new File(f.getAbsolutePath().substring(0,f.getAbsolutePath().lastIndexOf(File.separator)));
ParDir.mkdirs();
f.createNewFile();
}
//if (f != f2) f = f2;
//while(!f.exists){};
//Thread.sleep(1000);
//File f2 = new File("html\\src\\" + fileName);
//if (f.canWrite()) m_out.addtoListBox("Es sollte funktionieren!");
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
for (int i = 0; i < objects.length; i++) {
m_out.addtoListBox(objects[i].toString());
bw.write(objects[i].toString());
}
bw.close();
}catch (Exception e) {}
return true;
} catch (IOException e) {
return false;
}
} else
return false;
}
Schonmal danke für die Antworten!
€: Ich schreibe übrigens in J# (Mit Visual Studio).. Der gleiche Code hat mit "normalem" Java problemlos funktioniert.