Zum Inhalt springen

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


Empfohlene Beiträge

Geschrieben

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;

}

}

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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.

Weiterlesen  

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...