Hallo,
mein Java-Servlet soll, nach erfolgreicher Verarbeitung, eine Datei löschen. Dazu legt es ein File-Objekt an und löscht dieses dann mit delete(). Als ich es programmiert habe, hat beim Testen auf meinem lokalen Rechner alles auch geklappt. Jetzt läuft die Anwendung auf einem NT-Server und löscht gar nix mehr. Weiß jemand, was das sein könnte? Oder geh ich damit besser ins NT-Forum?
tschö
Thomas
Hi.
Bist du dir sicher, dass das File in der neuen Umgebung auch gefunden wird?
Wie greifst du auf das File zu? Mit einem absoluten Pfad oder über die Methode
File myFile = new File(request.getRealPath("/my/relative/filepath/myfile.ext"));
?
Du kannst ja mal eine Loggingstufe dazwischenschalten:
Printwriter out = response.getWriter();
try {
File myFile = new File(request.getRealPath("/myfile.ext"));
if (myFile.exists()) {
if (myFile.canRead()) {
if (myFile.canWrite()) {
if (myFile.isFile()) {
myFile.delete();
} else out.println("File ist gar kein File");
} else out.println("File darf nicht geschrieben werden.");
} else out.println("File darf nicht gelesen werden.");
} else out.println("File existiert nicht");
} catch (Exception e) { out.println("Ominöser Fehler: " + e.toString()); }
Damit solltest du eigentlich schon zu einem Response kommen, warum es nicht mag. Ich könnte mir z.B. eine Secutiry-Exception vorstellen, wenn das ganze bei einem ISP läuft, der Servlets nicht alles erlaubt.
mfG,
J.P.Jarolim
mein Java-Servlet soll, nach erfolgreicher Verarbeitung, eine
Datei löschen. Dazu legt es ein File-Objekt an und löscht
dieses dann mit delete(). Als ich es programmiert habe, hat
beim Testen auf meinem lokalen Rechner alles auch geklappt.
Jetzt läuft die Anwendung auf einem NT-Server und löscht gar
nix mehr. Weiß jemand, was das sein könnte? Oder geh ich damit
besser ins NT-Forum?
tschö
Thomas
Tachchen,
mein delete steht mit einem absoluten Pfad in einer if-Abfrage. Wenn die Sicherungsdatei besteht, also eine andere Datei, macht mein Programm ein paar Sachen und löscht dann die Quelle. Jetzt hab ich in dieser Schleife vor der delete-Anweisung noch ein if(datei.canWrite) und jetzt gehts (wieder). Versteh ich zwar nicht, aber es klappt.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]