file.delete funktioniert nicht

apa13179

Mitglied
Hallo,
ich suche mit meinem Code Messwertdateien, die ich auslese und in eine DB schreibe. Danach möchte ich die gefundene Datei löschen. Leider wird nicht immer jede Datei gelöscht.

Vielleicht habt ihr ne Idee :)

Mein Code:

Java:
public static isOK find(String start, String extensionPattern, isOK ISOK) throws ParseException, SQLException, IOException {
 List<File> files = new ArrayList<>(1024);
 Stack<File> dirs = new Stack<>();
 File startdir = new File(start);
 Pattern p = Pattern.compile(extensionPattern, Pattern.CASE_INSENSITIVE);
 if (startdir.isDirectory()) {
  dirs.push(startdir);
 }
 while (dirs.size() > 0) {
  for (File file: dirs.pop().listFiles()) {
   if (file.isDirectory()) {
    dirs.push(file);
   } else if (p.matcher(file.getName()).matches()) {
    files.add(file);
    ISOK.setFile(file.toString());
    FileHandler.fileToSplit(file, ISOK);
   }
  }
 }
 System.out.println("Size List files " + files.size());
 if (files.size() > 0) {
  System.out.println("Yes");
  for (int i = 1; i < files.size(); i++) {
   System.out.println("lösche: " + files.get(i));
   deleteFile(files.get(i));
  }
 }
 return ISOK;
}
public static void deleteFile(File f) throws IOException, SQLException {
 try {
  boolean result = f.delete();
  if (result) {
   ConnectDB.getWriteLog("FileConverter", "Datei gelöscht " + f.toString());
   f = null;
  } else {
   ConnectDB.getWriteLog("FileConverter", "Datei nicht gelöscht " + f.toString());
  }
 } catch (Exception e) {
  ConnectDB.getWriteLog("FileConverter", "Exception deleteFile " + f.toString() + "Ex = " + e.toString());
 }
}
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Er will ja nur spezifische Files löschen, nicht einen Ordner + ganzen Inhalt.
Das sollte mit dem Code eigentlich funktionieren. Sicher das die Datei von nicht mehr verwendet wird? Offener Stream aus deinem Program? Ein anderer Prozess der auf die Datei zugreift?
 

apa13179

Mitglied
Danke für die Antworten.

Richtig ich möchte nur die spezifischen Filles löschen.
Offener Stream kann nicht sein, da ich keinen Reader o.ä. aufmache.
Die Dateien werden von einer Steuerungen geschrieben und von niemanden benutzt.
 

Thallius

Top Contributor
Geh doch einfach mal Schrit für Schritt durch deinen Code. Für mich macht der so gar keinen Sinn. Du schaust ob das erste File ein Dir ist. Wenn ja packst du es in ein Array. Als nächstes schaust du ob das Array mit den Dirs einen Inhalt hat. Wenn nicht, dann machst du auch nicht. Wo liegt da der sinn. Wenn ja, dann holst du das eine Dir wieder raus, wozu? ist ja immer noch das startFile!. Dann gehst du durch das dir und wenn es ein passendes file ist packst du es in das file array und wenn es ein dir ist in das dir array. Warum? Du benutzt das dir array danach nie wieder!.

Wenn du auch Files in den Unterorndern löschen willst, must du rekursiv arbeiten. Machst du aber nicht.

Gruß

Claus
 

Joose

Top Contributor
Wenn du auch Files in den Unterorndern löschen willst, must du rekursiv arbeiten. Machst du aber nicht.
Muss nicht rekursiv gelöst werden, kann auch so wie hier in diesem Fall iterativ sein!

Geh doch einfach mal Schrit für Schritt durch deinen Code. Für mich macht der so gar keinen Sinn.
Sehen wir unterschiedlichen Code? Er gibt sein erstes File in einen Stack (sofern es sich um ein Directory handelt).
Danach geht er (iterativ) seine Ordnerstruktur durch, alle Dictionaries werden dem Stack hinzugefügt und Files dessen Namen passen, werden in eine extra Liste geschrieben.

Diese Files sollen gelöscht werden, was aber nicht bei allen funktioniert.
 

mrBrown

Super-Moderator
Mitarbeiter
Danke für die Antworten.

Richtig ich möchte nur die spezifischen Filles löschen.
Offener Stream kann nicht sein, da ich keinen Reader o.ä. aufmache.
Die Dateien werden von einer Steuerungen geschrieben und von niemanden benutzt.

Wie liest du die Dateien denn ein?
Das klingt am ehesten danach, dass irgendein Prozess (uU deiner durch das Einlesen) noch ein lock auf die Datei hat...

Du könntest es mal mit Files.delete versuchen, da sollte eine Exception mit Grund geworfen werden, wenn es nicht klappt.
 

apa13179

Mitglied
Hallo,
danke für die Antworten.

Wie liest du die Dateien denn ein?
Das klingt am ehesten danach, dass irgendein Prozess (uU deiner durch das Einlesen) noch ein lock auf die Datei hat...

Die dateien kann ich jederzeit im Betriebssystem löschen, deshalb nehme ich an, dass sie nicht durch einen anderen Prozess o.ä. gelockt sind.

Du könntest es mal mit Files.delete versuchen, da sollte eine Exception mit Grund geworfen werden, wenn es nicht klappt.

files.delete bringt keine Exception nur das File ist danach noch vorhanden o_O

Ich hatte vermutet, dass die Dateien durch meinen eigenes Programm gelockt sind. Das kann ich auch ausschliessen.

Hat jemand vielleicht noch ne Idee????
 

Joose

Top Contributor
Die dateien kann ich jederzeit im Betriebssystem löschen, deshalb nehme ich an, dass sie nicht durch einen anderen Prozess o.ä. gelockt sind.

Ich hatte vermutet, dass die Dateien durch meinen eigenes Programm gelockt sind. Das kann ich auch ausschliessen.

Sprich während dein Programm läuft und probiert hat die Files zu löschen, könntest du über den Dateimanager die Dateien ohne Probleme löschen?
 

Joose

Top Contributor
Oben hast du geschrieben das du ausschließen kannst das dein Programm die Dateien lockt ;)
Daher dachte ich mir hast du ausprobiert die Dateien während dein Programm läuft zu löschen.

EDIT: Es gibt auch Tools welche dir anzeigen können welche Prozesse Zugriff auf eine Datei haben.
 

mrBrown

Super-Moderator
Mitarbeiter
Ist es immer eine Datei, die auch noch die erste Datei in der Liste ist?
Dann liegt's an deiner for-Schleife, die bei 1 statt 0 startet, oder ist das schon gefixt?
 

apa13179

Mitglied
Dann liegt's an deiner for-Schleife, die bei 1 statt 0 startet, oder ist das schon gefixt?
Ja, das hatte ich schon behoben.

Oben hast du geschrieben das du ausschließen kannst das dein Programm die Dateien lockt ;)
Daher dachte ich mir hast du ausprobiert die Dateien während dein Programm läuft zu löschen.

Durch das Debuggen habe ich heraus gefunden, dass vermutlich ein Scanner nicht immer geschlossen wird. Leider habe ich diesen Teil des Programms nicht selber geschrieben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E java.io - File: delete funktioniert nicht Java Basics - Anfänger-Themen 5
J File.delete erfolgreich obwohl Datei geöffnet ist. Java Basics - Anfänger-Themen 3
T Datei wird nicht gelöscht mit file.delete() Java Basics - Anfänger-Themen 5
0 file.delete() geht nicht Java Basics - Anfänger-Themen 23
Burny91 File.delete(file) geht nicht-Offener Stream aber WO? Java Basics - Anfänger-Themen 4
N File.delete() und File.list() Java Basics - Anfänger-Themen 6
B File mit Methode delete löschen Java Basics - Anfänger-Themen 3
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
R File.pathSeparator und File.separator Java Basics - Anfänger-Themen 46
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
berserkerdq2 IOstreams, was unterscheidet file von z. B. BufferedWriter? Java Basics - Anfänger-Themen 11
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
A java jar-File Java Basics - Anfänger-Themen 1
E Executable jar file fehler Java Basics - Anfänger-Themen 9
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
I ZIP File erstellen Java Basics - Anfänger-Themen 10
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
Tom/S File Java Basics - Anfänger-Themen 10
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
A Checkstyle - File contains tab characters Java Basics - Anfänger-Themen 2
H Java file nicht gefunden Java Basics - Anfänger-Themen 5
C File speichern Java Basics - Anfänger-Themen 5
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K File (png) in Image laden Java Basics - Anfänger-Themen 3
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A jar File kleiner bekommen Java Basics - Anfänger-Themen 3
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
D Input/Output File exists canRead canWrite Java Basics - Anfänger-Themen 11
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
S java.nio.file.FileSystemException bei Dateizugriff vermeiden Java Basics - Anfänger-Themen 7
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
E War-File Problem mit Eclipse Java Basics - Anfänger-Themen 3
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12
K Runable Jar File erstellen Java Basics - Anfänger-Themen 17
T Java Executable jar file funktioniert nicht Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
Kopak'rraf Korruptes zip File. Java Basics - Anfänger-Themen 0
T File für Einstellungen wird nicht geladen Java Basics - Anfänger-Themen 1
S Sounddatei in Jar File integrieren Java Basics - Anfänger-Themen 2
S Index File bauen Java Basics - Anfänger-Themen 5
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
S File mit canRead() testen Java Basics - Anfänger-Themen 4
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
S jar file Java Basics - Anfänger-Themen 19
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
B Dateityp von File bekommen Java Basics - Anfänger-Themen 2
I Automatisch Verzeichnis erstellen bei File erstellen Java Basics - Anfänger-Themen 5
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N File virtuell ByteStream Java Basics - Anfänger-Themen 11
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
ms_cikar Jar file mit resource erzuegen Java Basics - Anfänger-Themen 28
E lesen csv file column by column Java Basics - Anfänger-Themen 10
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
P Jar File Java Basics - Anfänger-Themen 3
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
S CSV File - "Vergleichen und Sortieren" Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben