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 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析
  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo