Zum Inhalt springen

File log = new File("C:\test.log") kann nicht gelöscht werden..Warum?


Superpapagei

Empfohlene Beiträge

Damit ist eigentlich alles schon gesagt ...hier ist der Code abschnitt . Wäre cool wenn mir das einer erklären könnte ...

import java.io.*;

public class logCheck {

boolean fileFlag;

File log = new File("C:\\sdi.log");

public boolean logCheck() {

if(log.exists()){

fileFlag = true;

System.out.println("Ja Es gibt bereits einen Job");

}

return fileFlag;

}

public boolean createLog(){

try{

FileWriter fw = new FileWriter(log);

BufferedWriter buff = new

BufferedWriter(fw);

System.out.println("Nein Es gibt noch keinen Job und log file

wurde erzeugt");

fileFlag = false;

}catch(IOException e){System.out.println("t");}

return fileFlag;

}

public boolean deleteLog(){

if(log.exists()){

log.deleteOnExit();

fileFlag = false;

}

return fileFlag;

}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

bei mir funktioniert das loeschen.

os: debian linux

j2sdk 1.4

public static void main(String args[])

{

LogCheck check=new LogCheck();

check.createLog();

check.deleteLog();

}

in der api steht, dass die virtuelle maschine sauber beendet werden muss, damit deleteOnExit das file loescht. liegt es vielleicht daran?

nebenbei:

hiervon verstehe ich den sinn nicht:

System.out.println("Nein Es gibt noch keinen Job und log file wurde erzeugt");

wird schliesslich immer geschrieben, wenn die methode createLog aufgerufen wird.

hth

murphey

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm also das Ding läuft hier bei uns als Cronjob d.h. der Server läuft und ruft alle paar Minuten den Job auf . Bestandteil dieses Jobs ist die Prüfung ob diese Datei existiert . Damit der aktuelle Job,für den Fall das es sie schon gibt und somit der letzte Job noch läuft , abgebrochen wird.

Auf meinem Rechner ist es so das , wenn ich versuche den File manuel zu löschen ,dies verweigert wird mit dem Hinweis das diese gerade benutzt wird . Nun ist der Cronjob bzw diese Class

die einzige Stelle die darauf zugreifen sollte . Bloss der Job sollte beendet sein bzw. ist er ja auch . Nur die Datei ist noch da weil sie halt nicht gelöscht werden kann . Da es bei Dir funktioniert ist die Frage wer oder was bei mir darauf zugreift .

Mein OS ist WindowsNT4.0 , der Server ist ein

Resin 2.0.4 .

Zu der Sache mit der Ausgabe ist es so da bei mir zuerst auf die logCheck() Methode zugegriffen wird.

Wird diese mit true beantwortet beendet sich der Cronjob und es werden keine weiteren Anweisungen mehr ausgeführt .

Wird diese mit false beantwortet dann wird createLog () angeschmissen .

Sprich es wird nur ein Log erzeugt wenn noch keiner existiert .

Ich hoffe das war jetzt nicht zu wirsch ;-)

Danke erstmal für die Antwort .

Cu

Mfg

Superpapagei

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...