import java.io.File;
import java.util.Scanner;
/**
* 要求用户输入一个文件或目录名,并删除当前目录下的该文件或目录。
*/
public class Test {
public static void delete(File file){
if(!file.exists()){
System.out.println("不存在");
}else{
if(!file.isDirectory()){
file.delete();
}else{
File[] files = file.listFiles();
if(files==null){
file.delete();
}else{
for(int i=0;i<files.length;i++){
delete(files[i]);
}
}
}
file.delete();
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的当前文件夹下的指定文件或者目录");
String filename = sc.nextLine();
File file = new File("./",filename);
delete(file);
if(file.exists()){
System.out.println("失败");
}else{
System.out.println("成功");
}
}
}
以上代码是我这个还在学习Java的过程中的萌新碰到的问题的解决方法,今天想贴上来是因为,在实现这个功能的过程中,我不小心在递归过程里面,用file.delete()这个方法删除了我这个工程下,所有的非目录的文件。
结果就是,我这个工程成了一个普通的目录,里面的所有的.java&&.class&&.classpath等等等等全部没有了!这个工程还有我前面几天辛辛苦苦完成的作业也没有了……QAQ 为了让和我一样在学习这方面知识的朋友避免出现这种问题,因而贴上了代码,有需要的朋友可以看下。 小步快跑向楼道里的厕所哭一会q_q……