2017-01-16 124 views
4

我在使用org.apache.commons.io.FileUtils從img目錄中刪除文件時遇到問題。我使用此代碼:如何正確刪除文件?

File dir = new File(".\\img"); 
    FileFilter fileFilter = new WildcardFileFilter(userId + ".*"); 
    File[] files = dir.listFiles(fileFilter); 
    System.out.println("files found: " + files.length); 
    for (int i = 0; i < files.length; i++) { 
     boolean success = FileUtils.deleteQuietly(files[i]); 
     System.out.println(files[i] + " delete result = " + success); 
    } 
} 

其實代碼使用替換圖像文件與新的img目錄存在。我需要用新文件刪除所有以前存在的名稱爲n。*的文件,例如, n.png。如果我試圖刪除圖像文件,則變量成功的值爲false,並且文件不會被刪除。但不是圖像文件,例如*名爲.abc; * .acd; * .acdc等被成功刪除。這個問題是什麼情況?

+2

沒有相匹配的開口支架,末端有一個右括號,縮進很奇怪。代碼中是否存在一些if語句? –

+0

你能提供一個輸出樣本嗎? – phss

+4

爲什麼不嘗試調用'files [i] .delete()',看看拋出了什麼異常。 –

回答

1

試試這個:

java.nio.file.Files.delete(files[i].toPath()); 

,看看會拋出異常。

0

問題在於打算刪除的文件在代碼的另一部分中用作輸入流,並且此輸入流未關閉。所以這些文件不能被刪除。