更新時間:2021-12-30 來源:黑馬程序員 瀏覽量:
在操作文件時,經(jīng)常需要刪除一個目錄下的某個文件或者整個文件夾,這時可以使用File 類的delete()方法來實現(xiàn),在使用該方法時需要判斷當前目錄下是否存在文件,如果存在則需要先刪除內(nèi)部文件,然后再刪除空的文件夾。
接下來通過一個案例講解如何使用delete()方法刪除指定目錄下的文件和文件夾,如例7-16所示。
例7-16 Examplel6.java
import java.io.*; public class Examplel6 | public static void main(Stríng[]] args) { //創(chuàng)建File對象,并指定文件路徑 File files = new File("D:\\test\\新建文件夾“); //調(diào)用刪除方法 deleteDir(files); } //刪除方法 public static void deleteDir(File flles) { //獲取File對象中的所有文件,并將其放在數(shù)組中 File[] listFiles = files.listFiles(); //循環(huán)遍歷數(shù)組 for (File file: listFiles) { //如果是目錄文件,則遞歸調(diào)用刪除方法 if (file.isDirectory()) { deleteDir(file); } //如果是文件,則刪除 file.delete(); } //刪除文件夾內(nèi)所有文件后,再刪除文件夾 23 files.delete(); } }
例7-16中,指定要刪除文件的路徑為D:\\test\\新建文件夾(讀者測試時需要提前創(chuàng)建自行定義刪除的文件路徑),接著定義了一個刪除目錄的靜態(tài)方法deleteDir()來接收一個File類型的參數(shù)。在這個方法中,通過listFiles()方法把這個目錄下所有的子目錄和文件保存到一個File類型的數(shù)組listFiles中,然后通過for循環(huán)遍歷數(shù)組。在循環(huán)過程中,如果是目錄,就遞歸調(diào)用deleteDir()方法進行遍歷;如果是文件,就直接調(diào)用File的delete()方法刪除。當刪除完一個文件夾下的所有文件后,還需要刪除當前這個最外層文件夾,這樣便從里層到外層遞歸地刪除了整個目錄。
注意:在Java中刪除目錄的操作是通過Java虛擬機直接刪除而不走回收站的,文件一旦刪除就無法恢復,因此在進行刪除操作時需要格外小心。