欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

递归删除目录和文件的程序

程序员文章站 2022-03-03 09:07:11
...

递归删除目录和文件的程序,将一个和svn绑定的文件夹中的.svn删除,用来取消svn的绑

定。修改一下函数参数可以用来递归删除一个文件夹和子文件夹下某一个同名目录(包括子目录和文件

)。使用方法是传递函数的参数:要删除的目录或文件的绝对路径和名称。代码如下:

import java.io.*;    
   
public class DelDir {    
   
    public static void main(String[] args) {            
        String rootDir = "D:\\work\\project\\ACProductDemo";    
        String delDirName = ".svn";    
        DelDir del = new DelDir();    
        del.FindDirectory(rootDir,delDirName);    
    }    
    /**//*   
     *    
     */   
    private 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()){    
                    //根目录的子文件夹就是要删除的文件夹    
                    if(files[i].getName().equals(delName)){    
                        System.out.println(files[i].getAbsolutePath());    
                        DelDirectory(files[i]);    
                    }    
                    //根目录的子文件夹不是要删除的文件夹    
                    else{    
                        FindDirectory(files[i].getAbsolutePath(),delName);    
                    }    
                }                    
            }    
        }    
    }    
        
    private void DelDirectory(File directory){    
        File[] children = directory.listFiles();    
        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());    
        }    
    }    
}    

 

相关标签: SVN