您的位置:首页 > 其它

2011 09 01 --递归删除目录中的文件以及当前目录

2011-09-01 15:34 274 查看
/*2011 09 01 题目要求是需要递归删除目录,在确定目录为空的前提下删除目录
* 首先便利目录,递归删除文件,之后在逐个删除。
 * 递归的简单操作,
 * 先;列出要删除的文件,之后判断是否删除
 * 
 * 申延刚 Younger.Shen 
 * younger.x.shen@gmail.com
 * blog.csdn.net/hack2me
 */

package com.youngershen.io.test;

import java.io.*;
import java.util.*;
import com.youngershen.io.test.*;

public class DeleteDir {

	
	private File file = null;
	private ShowDirectory show = null;
	
	public DeleteDir(String fileName){
		
		show = new ShowDirectory(fileName);
		
		file = new File(fileName);
		
		if(file.exists()){
			
			show.init();
			
			char flag = 0;
			//Scanner sc = new Scanner(System.in);
			
			InputStreamReader  r = new InputStreamReader(System.in);
			System.out.println("以上是要删除的文件,确定输入Y,输入其他则放弃");
			try {
				
				flag =(char)r.read();
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
    		if(flag == 'Y' || flag =='y'){
			
    				delete(file);
    		}else {
    			
    			System.exit(0);
    			
    		}
		}
		else {
			
			System.out.println("文件或目录不存在");
			
		}
		
	}
	
	public static void useage(){
		
		System.out.println("直接输入路径或者文件可以删除\n" +
				"输入目录的话则文件会都被删除\n" +
				"eg: java DeleteDir c:/ \n " +
				"good luck");
		
		
	}
	private void delete(File f){
	
		if(!f.isDirectory()){
		
			f.delete();
		
		}else{
		
			File[] buff = f.listFiles();
			if(0 != buff.length)
				
				for(File t: buff){
					
					
					delete(t);
					
					f.delete();
				}
			else{
			
				f.delete();
				
			}
			f.delete();
		}
	}
	
	public static void main(String[] args){
		
		
		/*if(args.length != 1){
			
			useage();
		}
		else{
			
			new DeleteDir(args[0]);
		}
		
	*/		
		new DeleteDir("d:/1/");
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: