Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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;

}

}

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

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

Hast du schon mal probiert, die Datei bzw. dem BufferedWriter vor dem löschen zu schliessen (mit close() )??

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.