论坛首页 入门技术论坛

java对文件的操作(二)----------------递归删除目录和文件的程序

浏览 1485 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-08-16   最后修改:2009-08-16
import java.io.File;

/**
 * <p>递归删除目录和文件的程序 </p>
 *
 */
public class DelFileUtils {

    public static void main(String[] args) {    
    	//则试OK
        String rootDir = "E:\\delDir";
        String delDirName = ".txt";
        DelFileUtils del = new DelFileUtils();
        System.out.println("-------------del ---status----");
        del.FindDirectory(rootDir,delDirName);
        System.out.println("-------------del ---end----");
    }
   
    
    /**
     * 删除目录下指定类型文件或目录
     * @param root		是根目录的绝对路径
     * @param delName 	 要删的类型
     */
    public static void FindDirectory(String root,String delName){
        //root是根目录的绝对路径
        File directory = new File(root);
        File[] files = directory.listFiles();
        //根目录为空
        if(files.length ==0){
            System.out.println(root+"根目录为空!");
            return;
        }
        else{
            for(int i=0;i<files.length;i++){
                if(files[i].isDirectory()){
                	System.out.println("--------name:"+files[i].getName());
                    //根目录的子文件夹就是要删除的文件夹
                    if(files[i].getName().equals(delName)){
                        System.out.println(files[i].getAbsolutePath());
                        DelDirectory(files[i]);
                    }
                    //根目录的子文件夹不是要删除的文件夹
                    else{
                        FindDirectory(files[i].getAbsolutePath(),delName);
                    }
                }                
            }
        }
    }
    
    /**
     * 删除目录以及目录下的所有文件
     * @param directory 文件名
     */
    public static void DelDirectory(File directory){
        File[] children = directory.listFiles();
        System.out.println("---------------method del---------------------");
        if(children.length==0){
            directory.delete();
            System.out.println("\t删除目录"+directory.getName());
        }
        else{
            for(int i=0;i<children.length;i++){
                if(children[i].isFile()){
                    children[i].delete();
                    System.out.println("\t删除文件"+children[i].getName());
                }
                else if(children[i].isDirectory()){
                    DelDirectory(children[i]);
                    System.out.println("\t"+children[i].getAbsolutePath());
                }
            }
            directory.delete();
            System.out.println("\t删除目录"+directory.getName());
        }
    }
}
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics