java.io.File的delete操作

java.io.File裏的delete操作很實用也很常用,可以用來刪除單獨的文件和某一目錄。但有時候會出現delete失敗的情況,出現這種情況的原因一般有以下幾種:

1、刪除時還有其他程序在使用該文件,此時將無法正確刪除

2、沒有close關閉和該文件相關的所有輸入輸出流等,導致無法刪除(這一點是最容易忘記的,你犯的可能就是這一條)

3、當刪除某一目錄時,必須保證該目錄下沒有其他文件才能正確刪除,否則將刪除失敗。這裏可以採用listFiles對目錄下的文件或者目錄進行處理。

下面給出一個具體的例子:

File f = new File(path);

DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));

 if (f.exists()) {
                    System.out.println(f.getAbsoluteFile());
                    if (!f.delete()) {
                        System.out.println("請關閉使用該文件的所有進程或者流!!");
                    } else {
                        System.out.println(f.getName()+" 成功被刪除!");
                    }
                }

此時f是無法delete的,即f.delete()將返回false,原因就在於沒有關閉dos.所以需要在if之前加入一句f.close(),這樣就可以刪除成功了。

File f = new File(path);

DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));

 if (f.exists()) {
                    System.out.println(f.getAbsoluteFile());
                    if (!f.delete()) {
                        System.out.println("請關閉使用該文件的所有進程或者流!!");
                    } else {
                        System.out.println(f.getName()+" 成功被刪除!");
                    }
                }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章