Datei Beschreibbar?

Status
Nicht offen für weitere Antworten.

schlaubie

Bekanntes Mitglied
Hallo Leute wie kann man abtesten ob eine Datei von einem anderen Prozess oder Nutzer in Verwendung ist!
Mit canRead canWrite funktioniert es nicht!
 
Warum willst du das wissen?

Willst du die Datei mit Java löschen und es geht nicht oder warum?

Dann ist meistens ein Read oder Write Objekt von der Datei offen!
 
Und speichern wenn die datei aber jemand anderes in Benuztzung hat dann kann ich nicht reinschreiben! Wie kann ich das abtesten!
 
Wenn's ne IOException gibt, kannst du nicht schreiben, wenn nicht hat's geklappt...

Und beachte, nicht unter allen Betriebssystemen werden geöffnete Dateien automatisch gesperrt (jetzt fällt mir diese blöde Fachausdruck nicht ein!!).
 
In Linux kannst du files sogar löschen, während sie laufen...

Also ob da ne IOException kommt, ist ne andere Frage.
 
schlaubie hat gesagt.:
Das mit der IO Exception ist ja eigentlich das was ich vermeiden will!!

Kannst du aber nicht! Szenario:

1. Du testest irgendwie ob du beschreiben darfst; Ergebnis = OK
2. Eine andere Anwendung lockt die Datei
3. Du willst beschreiben und bekommst 'ne Exception.
 
Vielleicht nicht ganz das Richtige, aber
Code:
File f = new File("datei");
if(f.canWrite())
{
    //alles klar
}else
{
    //Fehler, nicht schreibbar
}
 
Kola hat gesagt.:
Code:
File f = new File("datei");
if(f.canWrite())
{
    //alles klar
}else
{
    //Fehler, nicht schreibbar
}

Code:
File f = new File("datei");
if(f.canWrite())
{
    //alles klar aber trotzdem auf Exceptions achten
}else
{
    //Fehler, nicht schreibbar
}
 
Ich habs mit renameTo gemacht nur leider hält Windows irgenwie manchmal das File noch fest! Hat jemand noch ne Idee?
 
Schilder doch bitte mal den Kontext.

Was spricht denn jetzt z.B. gegen die IOException?
 
schlaubie hat gesagt.:
hält Windows irgendwie manchmal das File noch fest!

Q. Und woher willst du das wissen?
A. Weil das Renamen nicht klappt
Q. Und was meckert das Programm?
A1. Meckern!? Gar nicht, es läuft einfach durch... :bloed:
A2. Exception in ...

Zur Lösung des Falles bestelle ich dann einmal Antwort A2 😎
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben