删除文件夹,包括其下面所有内容
代码如下:
import java.io.File;
import java.util.Scanner;
/**
* @Author juna3066
* @Date 2019/3/29
*
*/
public class Delete {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("input file name:(input 'wq' to exit!)");
String input = sc.nextLine();
if ("wq".equals(input)) {
System.out.println("break");
break;
}
File file = new File(input);
if(!file.exists()){
//调用删除前判断是否存在file。
//这是判断files是文件或者文件夹的前提
System.out.println("not exists...");
}else{
deleteAll(file);
System.out.println("delete ok!");
}
System.out.println("----------------------------------------");
}
}
/**
* 递归删除,先删除跟,后删除自己
* 注意的是f.delete()方法针对空文件夹可以直接删除,非空则不能
*
* 这个和遍历出该目录下所有文件的代码差不多,只是在递归调用的后面多了一个删除。
* @param file
*/
private static void deleteAll(File file) {
if(file.isFile()) {
//删除文件
System.out.println(file.getName()+"file delete ok!");
file.delete();
}else{
File[] files = file.listFiles();
for (File f : files) {
//递归删除,文件夹下的文件都删除干净
deleteAll(f);
}
//这一点很重要,然后删除这个文件
System.out.println(file.getName()+"directory delete ok!!");
file.delete();
}
}
}

浙公网安备 33010602011771号