import java.io.File;
import java.util.Scanner;
public class Test2 {
/**
* 需求:从键盘接收一个文件夹路径,删除该文件夹.
* 思路:分两步 第一步:
* 1.1.创建一个方法,这个方法用来接收键盘录入对象并进行判断的。方法名为dun,返回值类型为File(因为键盘录入的是一个文件夹路径),
* 参数列表为空(因为不需要从外面传什么东西进来)
* 1. 2.创建键盘录入对象。
* 1.3.创建File对象来接收键盘录入。
* 1.4.判断是否是文件夹路径。如果是就返回File类型的参数。
* 第二步:
* 2.1.创建一个方法,这个方法用来接收File对象的参数。方法名为fun,返回值了类型为void(因为只是删除东西,并不需要返回值啊),
* 参数列表是File dir (将dun方法的参数传进来)。
* 2.2.获取这个文件夹下的所有文件和文件夹。
* 2.3.遍历并判断是否是文件,如果是就删除,如果不是,就使用递归的思想来递归调用。直到把所有文件都删完为止。
* 2.4.在循环外把这个空的文件夹也删了。才能做到完全删除了。
* 2.5.主方法中调用这两个方法。
*/
public static void main(String[] args) {
// 2.5.主方法中调用这两个方法。
File dir = dun();
fun(dir);
System.out.println(dir.getName()+"文件夹已删除,谢谢使用!");
}
// 1.1.创建一个方法,这个方法用来接收键盘录入对象并进行判断的。方法名为dun,返回值类型为File(因为键盘录入的是一个文件夹路径),
// 参数列表为空(因为不需要从外面传什么东西进来)
public static File dun() {
// 1.2.创建键盘录入对象。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个需要删除的文件夹路径:");
while (true) {
String line = sc.nextLine();
// 1.3.创建File对象来接收键盘录入。
File dir = new File(line); // 创建file对象.将line的数据传进去.
// 1.4.判断是否是文件夹路径。如果是就返回File类型的参数。
if (!dir.exists()) {
System.out.println("您输入的文件夹路径不存在,请输入文件夹路径:");
} else if (dir.isFile()) {
System.out.println("您输入的是文件路径,请输入文件夹路径:");
} else {
return dir;
}
}
}
// 2. 1.创建一个方法,这个方法用来接收File对象的参数。方法名为fun,返回值了类型为void(因为只是删除东西,并不需要返回值啊),
// 参数列表是File dir (将dun方法的参数传进来)。
public static void fun(File dir) {
// 2.2.获取这个文件夹下的所有文件和文件夹。
File[] file = dir.listFiles();
// 2.3.遍历并判断是否是文件,如果是就删除,如果不是,就使用递归的思想来递归调用。直到把所有文件都删完为止。
for (File file2 : file) {
if (file2.isFile()) {
file2.delete();
} else {
fun(file2);
}
}
// 2.4.在循环外把这个空的文件夹也删了。才能做到完全删除了。
dir.delete();
}
} |
|