2017-08-17 1 views
1

Hier ist mein Code, um die pdf-Datei zu löschenEinfache Dateicode löschen funktioniert nicht in Java

try { 
    File file = new File(docObjectId + ".pdf"); 
    file.setWritable(true); 
    System.out.println(file.length()); 
    if (file.delete()) { 
     System.out.println(file.getName() + " is deleted!"); 
    } else { 
     System.out.println("Delete operation is failed."); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Auf dem anderen Teil des Codes geht.

PDF-Datei ist im Projektstammordner und ich kann es manuell löschen. Ich kratze mich jetzt am Kopf.

Hier ist vollständige Methode. Es könnte zu einem anderen Grund zurückzuführen sein

public Response getContractDocument(@PathParam("docid") String docObjectId) throws Exception { 
    DocumentumService documentumService = new DocumentumService(documentumConfigUtil); 
    DocumentumDocumentBean docDocumentBean = documentumService.getContractDocContent(docObjectId, true); 

    FileInputStream fileInputStream; 
    fileInputStream = new FileInputStream(docDocumentBean.getDocFile()); 
    compressPdf(fileInputStream,docObjectId + ".pdf"); 

    fileInputStream = new FileInputStream(docObjectId + ".pdf"); 


    ResponseBuilder responseBuilder = Response.ok((Object) fileInputStream); 
    try { 
     File file = new File(docObjectId + ".pdf"); 
     System.out.println(file.getAbsolutePath()); 
     file.setWritable(true); 
     System.out.println(file.length()); 

     File d = new File(file.getAbsolutePath()); 
     if (d.delete()) { 
      System.out.println(file.getName() + " is deleted!"); 
     } else { 
      System.out.println("Delete operation is failed."); 
     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
    return responseBuilder.build(); 
} 
+0

Sie die Datei nicht löschen. Sie überprüfen, ob die Anweisung nur prüft, ob die 'Datei' gelöscht wurde. – Jixone

+0

Das erste, was mir in den Sinn kommt, ist, ob du sicher bist, dass der Dateipfad korrekt ist? Wenn ich relativ bin, würde ich überprüfen, ob es das ist, was du denkst. –

+0

Versuchen Sie dies, wenn (file.exists()) { file.delete(); } – Tehmina

Antwort

0

ändern if(file.delete) zu

try { 
    file.delete(); 
    System.out.println("file deleted"); 
} catch(IOException e) { 
    System.out.println("file not deleted"); 
} 

Die Ausnahme nicht korrekt.

0

Überprüfen Sie zuerst, ob die Datei existiert oder nicht, und löschen Sie sie dann.

Bitte verwenden Sie den folgenden Code. Es funktioniert gut und ist sehr klar Ansatz für die Löschung. Ich hoffe, es würde helfen.

public static void main(String[] args) { 
    try{ 
     File file = new File("C:/Users/Tehmina Yaseen/Documents/NetBeansProjects/FileDeletion/src/filedeletion/Myfile.pdf"); 

     if (file.exists()) { 
      file.delete(); 
      System.out.println(file.getName() + " is deleted!"); 
     } else { 
      System.out.println("Delete operation is failed."); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Hier ist die Ausgabe:

Output of the above code

0

Meine Erfahrung mit Fenstern ist. Der Grund, dass eine Datei nicht gelöscht wird, ist immer dieselbe. Ein Objekt hat eine Verbindung zur Datei und hält es offen. In diesem Fall sieht es so aus, als wäre es fileInputStream.

dieses Versuchen Sie, bevor Sie zu löschen versuchen:

fileInputStream.close(); 
+0

ja du hast Recht. Ich habe versucht, es zu schließen, aber als Antwort bekomme ich nichts. Ich denke, ich bin in Zeigern und Verbindungen verloren. – Adeel

+0

Meinst du, dass der Wert von d.delete() weder wahr noch falsch ist? Was meintest du mit "als Antwort bekomme ich nichts"? – Charles

+0

Rückgabe responseBuilder.build(); Gibt nur Dateien zurück, die erfolgreich gelöscht wurden. – Adeel

Verwandte Themen