方法一:傳入字符串進行刪除
1 public static void delete(String path){ 2 File file = new File(path); 3 //判斷文件是否存在 4 if(!file.exists()){ 5 return; 6 } 7 //是文件,直接刪除 8 if(file.isFile()){ 9 file.delete(); 10 return; 11 } 12 //是目錄 13 if(file.isDirectory()){ 14 String[] files = file.list(); 15 //添加分割符 16 if (!path.endsWith(File.separator)) { 17 path = path + File.separator; 18 } 19 20 for(int i = 0; i < files.length; i++){ 21 //遞歸調用,進行刪除 22 delete(path + files[i]); 23 } 24 } 25 file.delete(); 26 }
方法二:傳入file進行刪除
1 public static void deleteAllFiles(File file){ 2 //判斷文件是否存在 3 if(!file.exists()){ 4 return; 5 } 6 //是文件,直接刪除 7 if(file.isFile()){ 8 file.delete(); 9 return; 10 } 11 //是目錄 12 if(file.isDirectory()){ 13 //返回此目錄中的文件和目錄 14 File[] files = file.listFiles(); 15 //遞歸調用,進行刪除 16 for(int i = 0; i < files.length; i++){ 17 deleteAllFiles(files[i]); 18 } 19 } 20 file.delete(); 21 }
二者的區別在於傳入字符串的時候,該字符串代表的是目錄的時候,要給此目錄下的文件和目錄添加分隔符。