需求:從鍵盤接收一個文件夾路徑,刪除該文件夾
import java.io.File;
import java.util.Scanner;
public class Test2 {
/*
* 需求:從鍵盤接收一個文件夾路徑,刪除該文件夾
*
* 分析:
* 從鍵盤接收一個文件夾路徑:
* 1.創建鍵盤錄入對象
* 2.定義一個無限循環
* 3.將鍵盤錄入的結果存儲並封裝成File對象
* 4.對File對象判斷
* 5.將文件夾路徑對象返回
*
*
* 刪除該文件夾
* 1.獲取該文件夾下的所有文件和文件夾
* 2.遍歷數組
* 3.判斷是文件直接刪除
* 4.如果是文件夾就遞歸調用
* 5.循環結束後,把空文件夾刪掉
*/
public static void main(String[] args) {
File dir = getDir();
deleteFile(dir);
}
/*
* 從鍵盤接收一個文件夾路徑:
* 1.返回值類型File
* 2.參數列表無
*/
public static File getDir(){
//1.創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個文件夾路徑:");
//2.定義一個無限循環
while(true){
//3.將鍵盤錄入的結果存儲並封裝成File對象
String line = sc.nextLine();
File dir = new File(line);
//4.對File對象判斷
if(!dir.exists()){
System.out.println("您錄入的文件夾路徑不存在,請輸入一個文件夾路徑:");
}else if(dir.isFile()){
System.out.println("您錄入的是文件夾路徑,請輸入一個文件路徑:");
}else{
//5.將文件夾路徑對象返回
return dir;
}
}
}
/*
* 刪除該文件夾
* 1.返回值類型void
* 2.參數列表File dir
*/
public static void deleteFile(File dir){
//1.獲取該文件夾下的所有文件和文件夾
File[] subFiles = dir.listFiles();
//2.遍歷數組
for (File subFile : subFiles) {
//3.判斷是文件直接刪除
if(subFile.isFile()){
subFile.delete();
}else{
//4.如果是文件夾就遞歸調用
deleteFile(subFile);
}
}
//5.循環結束後,把空文件夾刪掉
dir.delete();
}
}
注意:該方法刪除的文件,在回收站無法找回