q317079379 2010-01-19 22:54
浏览 261
已采纳

用递归删除文件夹及子目录

小弟新人!各位前辈请指点!

  • 写回答

1条回答 默认 最新

  • hongmiao88 2010-01-19 22:54
    关注

    import java.io.File;

    /**

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


    • */

      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());
        }
        }
        }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决