takidoso
Erfahrenes Mitglied
Hallo und Halli,
in einer Anwendung, die durch eine Datei prüft, ob sie selbst läuft, wird diese, ich nenne das mal Indikationsdatei, zyklisch neu geschrieben, um sicher zu gehen, dass sie nicht von außerhalb gelöscht wurde.
Das ganze passiert in der Anwendung durch folgende Routine
Dazu eine Frage... Ist es hier unbedenklich, dass jedesmal ein neues File-Object erschaffen und mit deleteOnExit "markiert" wird?
Oder sollte man vorsichtshalber lieber ein einzelnes File-Objekt z.B. als Klassenobjekt definieren, welches dann auch nur einmal markiert wird.
Ich hatte mal im File-SourceCode geschaut, aber die letzte Mehtode, auf die ich bezogen auf die Markierung traf, war abstrakt. Insofern bin ich mir nicht 100% sicher, ob die File-Objekte dann doch irgendwie gehalten werden würden. Anderseits müssten solche Routinen meiner Ansicht nach idiotensicher sein, dass man nicht in eine deratige Falle reinläuft. Am sinvollsten, solte hier tatsächlich nur der Pfad von der JVM gemerkt werden, aber ist das tatsächlich so?
mit neugierigen Grüßen
Takidoso
in einer Anwendung, die durch eine Datei prüft, ob sie selbst läuft, wird diese, ich nenne das mal Indikationsdatei, zyklisch neu geschrieben, um sicher zu gehen, dass sie nicht von außerhalb gelöscht wurde.
Das ganze passiert in der Anwendung durch folgende Routine
Java:
static void writeRunningFile() throws Exception
{
File f = new File("appl.running");
FileWriter w = new FileWriter(f);
w.write("application is running since "+DATE_FORMAT.format(START_TIME_STAMP));
w.flush();
w.close();
f.deleteOnExit();
}
Oder sollte man vorsichtshalber lieber ein einzelnes File-Objekt z.B. als Klassenobjekt definieren, welches dann auch nur einmal markiert wird.
Ich hatte mal im File-SourceCode geschaut, aber die letzte Mehtode, auf die ich bezogen auf die Markierung traf, war abstrakt. Insofern bin ich mir nicht 100% sicher, ob die File-Objekte dann doch irgendwie gehalten werden würden. Anderseits müssten solche Routinen meiner Ansicht nach idiotensicher sein, dass man nicht in eine deratige Falle reinläuft. Am sinvollsten, solte hier tatsächlich nur der Pfad von der JVM gemerkt werden, aber ist das tatsächlich so?
mit neugierigen Grüßen
Takidoso