关于深恶痛绝的file类的delete问题

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……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值