Dateistatus abfragen und Datei löschen sobald kein Zugriff

Status
Nicht offen für weitere Antworten.

Andi1982

Mitglied
Hallo,

leider konnte ich über die Suchfunktion nichts finden das mir weiterhelfen könnte. Mein Problem ist folgendes:

Ich habe ein Verzeichnis in dem mehrere Dateien stehen. Mein Programm läuft gleichzeitig bei mehreren Benutzern. Alle 2 Sekunden wird in dem Verzeichnis nachgeschaut ob eine Datei für den Benutzer da ist. Dazu muss jede datei gelesen werden. Falls das Programm eine Datei für den aktuellen Benutzer gefunden hat muss diese verarbeitet werden und danach gelöscht werden. Und da ist das Problem! Dadurch dass die anderen Benutzer ebenfalls nach ihren dateien im Ordner suchen ist die Datei oft in Benutzung und kann nicht gelöscht werden und bleibt stehen.

Gibt es eine Möglichkeit in einer Schleife solange zu warten bis das löschen der Datei Möglich ist und dies dann sofort zu tun?

Würde mich sehr über Lösungsvorschläge freuen.

Viele Grüße Andi
 

Sky

Top Contributor
Das einzige, was ich auf die Schnelle dazu gefunden habe: java.nio.channels.FileLock
Vielleicht hilft es ja weiter...
 

Andi1982

Mitglied
Danke für den Hinweis, aber kann ich dazu irgendwo nähere Infos herbekommen? Bin erst seit gestern für die Java-Anwendungen zuständig und habe noch nich so meine Sourcen...

Was genau macht das java.nio.channels.FileLock??
 

Sky

Top Contributor
Ich hab's selbst mal versucht und gemerkt, den FileLock brauchst Du nicht.

Du musst wohl die zu löschenden Dateien in einer Collection sammeln und immer wieder versuchen 'delete' aufzurufen bis entweder 'true' zurück gegeben wird oder die Datei nicht mehr existiert (weil vom anderen Benutzer gelöscht; falls möglich).

Alternativ kannst du auch sagen 'File#deleteOnExit' dann wird die Datei gelöscht sobald die VM beendet wird. (Kommt natürlich nur in Frage, wenn es kein Prozess ist der andauernd läuft; sondern nur, wenn er regelmässig beendet und neu gestartet wird)
 

Bleiglanz

Gesperrter Benutzer
gibt es keine möglichkeit, am dateinamen zu erkennen ob eine datei "für einen benutzer ist"?

ansonsten kannst du das Problem nicht lösen, weil du sie ja öffnen musst um reinzuschauen, aber dann kann eben kein anderer reinschauen..?

BTW: wie machst du denn das?

mach halt den reinschau-Vorgang in einer Schleife, und ignorier die Exception [PUUU], so dass jeder in jede Datei einmal reinschaut...?
 

Andi1982

Mitglied
Am Dateinamen ist das leider nicht zu erkennen, das wäre wünschenswert gewesen. Leider sind wir da aber auf vorgaben einer anderen Firma angewiesen, die mit ihrerm Programm die dateien da rein stellen. Nur in der Datei Selber können wir im zweiten Satz den User auslesen und erkenne wem die Datei gehört.

theoretisch müsste ein while-Schleife ja genügen: While Not löschen_von_datei_erfolgreich do Löschen....

also in der Art jedenfalls...
 

Sky

Top Contributor
Bist Du denn an die Verzeichnisstruktur gebunden? Falls nicht und das Dateiaufkommen hoch ist empfiehlt es sich die Dateien pro Benutzer in Unterverzeichnisse zu verschieben.

Heißt, Du hast einen Prozess, der alle Files parst, den User ausliest und dann die Datei in das passende Unterverzeichnis verschiebt. Deine Benutzer lesen dann nur aus 'ihrem' Unterverzeichnis. Somit gibt es keine Blockade-Zustände mehr...
 

Andi1982

Mitglied
Das wäre eine Idee, muss mich mal informieren in wie fern wir daran gebunden sind...

Finde es übrigens echt klasse wie schnell man hier Antworten bekommen! Daumen hoch :toll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
VfL_Freak KeyEvent.VK_TAB im KeyListener abfragen Allgemeine Java-Themen 13
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
D TextBox Abfragen Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
J Tonhöhe & Lautstärke abfragen? Allgemeine Java-Themen 3
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
P Threads Parallelisierte DB-Abfragen mit variabler Anzahl an Threads Allgemeine Java-Themen 4
MiMa Variableninhalte dynamisch abfragen Allgemeine Java-Themen 12
A Erste Schritte If Abfragen + Scanner Allgemeine Java-Themen 7
Z AD Abfragen mit Java! Allgemeine Java-Themen 3
L Abfragen ob Threads fertig Allgemeine Java-Themen 3
chuxXo BasicPlayer - Beendigung Abfragen (Allgemein) Allgemeine Java-Themen 21
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
H In windowClosing() abfragen, ob STRG gedrückt wurde Allgemeine Java-Themen 8
M Aktuelle Systemzeit und Datum abfragen Allgemeine Java-Themen 2
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
J XML Inhalt von Web abfragen Allgemeine Java-Themen 6
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
S HTTP Filmgenre aus dem Internet abfragen! Allgemeine Java-Themen 6
M Zahl aktiver Threads einer Gruppe verlässlich abfragen Allgemeine Java-Themen 3
R Was ist hier falsch? Abfragen Allgemeine Java-Themen 3
E Unique Ids abfragen? Allgemeine Java-Themen 5
Airwolf89 Wahrheitstabelle abfragen Allgemeine Java-Themen 3
M ständiges abfragen einer .txt Allgemeine Java-Themen 2
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
V Hostname abfragen gelingt nicht immer Allgemeine Java-Themen 2
H Windows abfragen Allgemeine Java-Themen 2
M Enter Taste in Konsole abfragen Allgemeine Java-Themen 2
N IP-Adresse Eingabe abfragen? Allgemeine Java-Themen 4
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
C Batchdatei ausführen und Ergebnisse abfragen Allgemeine Java-Themen 8
M Vermeiden von instanceof Abfragen Allgemeine Java-Themen 3
M SQL-Installation abfragen Allgemeine Java-Themen 14
Z Wetterdaten abfragen Allgemeine Java-Themen 5
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
R Zugriffsrechte abfragen Allgemeine Java-Themen 2
R boolean im Bean abfragen Allgemeine Java-Themen 18
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Mausbewegung abfragen? Allgemeine Java-Themen 2
C Binärbereich einer Variablen abfragen Allgemeine Java-Themen 8
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
H Mit Java Desktop abmessungen height/width abfragen Allgemeine Java-Themen 20
H Sekunden messen wie lange h.ibernate/jdbc abfragen brauchen Allgemeine Java-Themen 7
G Abfragen des types Allgemeine Java-Themen 7
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
P verfügbare COM Schnitstellen abfragen Allgemeine Java-Themen 4
P <null> in einer DB abfragen Allgemeine Java-Themen 4
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
T Tastatur global abfragen Allgemeine Java-Themen 2
M Map gezielt abfragen? Allgemeine Java-Themen 5
MQue Vereinfachung von if- Abfragen Allgemeine Java-Themen 21
Chris_1980 Mausbewegung abfragen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
B jre version in der html-datei für ein applet abfragen Allgemeine Java-Themen 5
S Prozessorauslastung abfragen Allgemeine Java-Themen 2
C Tastatureingabe in einem Frame abfragen Allgemeine Java-Themen 2
R Thread.sleep - abfragen Allgemeine Java-Themen 4
S Name der ausführenden jar-Datei abfragen Allgemeine Java-Themen 11
S Abfragen der Komponente bei actionperformed Allgemeine Java-Themen 2
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
J Name des aktuell aktiven Windows-Fensters abfragen? Allgemeine Java-Themen 4
T Bittorrent TRACKER abfragen mit JAVA Allgemeine Java-Themen 4
C Threads abfragen, aber wie? Allgemeine Java-Themen 3
J ArrayList mit SQL abfragen ? Allgemeine Java-Themen 6
thE_29 ? in einem String abfragen Allgemeine Java-Themen 7
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
J Filenotfoundexception obwohl Datei existiert Allgemeine Java-Themen 6
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
E Datei verschoben Event Allgemeine Java-Themen 3
D Datei mit "Kohsuke GitHub API" in Repository hochladen Allgemeine Java-Themen 2
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
Neumi5694 Datei komprimiert Allgemeine Java-Themen 6
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
E Java .exe Datei mit args starten Allgemeine Java-Themen 2
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
M Excel Datei Erstellen Allgemeine Java-Themen 2
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
Tobero Download .jar von github lädt kaputte Datei runter Allgemeine Java-Themen 3
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben