Hallo, kurz gefasst:
Soweit, so gut. sendeAnforderung() und erhalteDaten() habe ich jetzt nur pseudohaft eingefügt. Steht quasi in Wirklichkeit mehr da. Die Datei wird zum Client auch erfolgreich übertragen, liegt damit auf dem Client auf HDD bereit.
Nun aber das Problem: Ich schließe sowohl die Streams, als auch den Socket. Trotzdem erhalte ich dannach, wenn ich die entsprechende Datei öffnen möchte in etwa meist folgenden Aufruffehler: "Zugriff verweigert, Datei wird an einer anderen Stelle aktuell genutzt." Die Datei ist somit in irgendeiner Form noch offen. Bei Textdateien tritt der Fehler z.B. nicht auf, vermutlich weil intern eine Kopie angelegt und geöffnet wird. Office-Dateien hingegen melden den Fehler, PDF ebenso. Ich ging davon aus, dass nachdem ich mit close() alle Stream und den Socket getrennt habe, Zugriff besteht, dem ist nicht so. Schließe ich das Programm, dann kann ohne Probleme die Datei auf der Festplatte öffnen. Woran kann es liegen???
Danke im voraus.
Grüße, Marcus
Code:
public foo(String server, int port, String sourcefilename) throws UnknownHostException, IOException {
client = new Socket(server, port);
InputStream is = client.getInputStream();
OutputStream os = client.getOutputStream();
//SEND --Pseudo
sendeAnforderung();
//RECEIVE --Pseudo
erhalteDatei();
//CLOSE
is.close();
os.close();
client.close();
//OPEN
if (Desktop.isDesktopSupported()) {
if (file.exists() && file.canExecute()) {
Desktop desk = Desktop.getDesktop();
desk.open(file);
}
}
}
Soweit, so gut. sendeAnforderung() und erhalteDaten() habe ich jetzt nur pseudohaft eingefügt. Steht quasi in Wirklichkeit mehr da. Die Datei wird zum Client auch erfolgreich übertragen, liegt damit auf dem Client auf HDD bereit.
Nun aber das Problem: Ich schließe sowohl die Streams, als auch den Socket. Trotzdem erhalte ich dannach, wenn ich die entsprechende Datei öffnen möchte in etwa meist folgenden Aufruffehler: "Zugriff verweigert, Datei wird an einer anderen Stelle aktuell genutzt." Die Datei ist somit in irgendeiner Form noch offen. Bei Textdateien tritt der Fehler z.B. nicht auf, vermutlich weil intern eine Kopie angelegt und geöffnet wird. Office-Dateien hingegen melden den Fehler, PDF ebenso. Ich ging davon aus, dass nachdem ich mit close() alle Stream und den Socket getrennt habe, Zugriff besteht, dem ist nicht so. Schließe ich das Programm, dann kann ohne Probleme die Datei auf der Festplatte öffnen. Woran kann es liegen???
Danke im voraus.
Grüße, Marcus