0

Ich habe ein Programm, das einige Dateien erstellen, legt sie in ein Verzeichnis, dann lesen Sie sie und sendet sie an einen Empfänger. nach jedem Senden einer Datei wird es gelöscht. jedoch nach dem ersten Satz von Dateien wird das Programm senden kann nicht alle anderen Dateien lesen und für jede neue Datei ich diese Störung erhalte:kann nicht lesen Datei aus einem Verzeichnis

java.io.FileNotFoundException: UBX_MSG.bin (The system cannot find the file specified)

jedes Mal, wenn ich die Filer las ich überprüfen, ob sie tatsächlich vorhanden ist und das Verfahren gibt immer wahr zurück.

kann jemand etwas Licht auf dieses Problem werfen? jede Hilfe wäre willkommen. Danke. Hier ist meine Funktionen, man liest die Datei und man sendet sie.

public void push2rec (File[] LOF){ 
    try {   
     for (File f : LOF){ 
      System.out.println(f.exists()); 
      byte[] rd = read(f.getName()); 
      SP.writeBytes(rd); 
      f.delete(); 
     } 
    } 
    catch (SerialPortException ex) {System.out.println(ex);} 
} 

public static byte[] read(String name){ 
    File file = new File(name);  
    byte[] bytes = new byte[(int) file.length()]; 
    try { 
     FileInputStream inputStream = new FileInputStream(file); 
     inputStream.read(bytes); 
     inputStream.close(); 
    } 
    catch (FileNotFoundException ex) {System.out.println(ex);} 
    catch (IOException ex) {System.out.println(ex);} 

    return bytes; 
} 
+0

Ist es möglich, dass 'f' versehentlich ein Verzeichnis ist? Sie können 'isFile()' verwenden, um zu überprüfen, – Idos

+0

nein, ich glaube nicht. Ich überprüfe auch nach 'f.canRead()' und das Ergebnis ist immer noch wahr. nur überprüft, es gibt für 'isFile()' wahr zurück. –

+0

Schritt durch Ihren Code mit einem Debugger. – RAnders00

Antwort

2

f.getName() gibt nur den Dateinamen ohne den Pfad zurück. Verwenden Sie f.getAbsolutePath().

+0

scheint wie es funktioniert. Danke –

Verwandte Themen