zoukankan      html  css  js  c++  java
  • JUnit 3.8 演示递归删除文件目录的 测试类程序 .


     用递归方式来实现删除硬盘的文件或目录(空文件夹)

    首先要找到递归的入口及出口,这点很重要,成败在此,呵呵!

    代码实现:

    [java] view plain copy
    1. import java.io.File ;  
    2.   
    3. class RecursionDeleteFileDemo //利用递归 删除 文件或目录 操作  
    4. {  
    5.     public static void deleteFiles(File file)  
    6.     {  
    7.         //递归出口  
    8.         //判断目前文件,如果是文件 或 是一个空的文件夹,则删除  
    9.         if(file.isFile() || file.list().length ==  0)  
    10.         {  
    11.            file.delete() ;  
    12.         }  
    13.         else  
    14.         {  
    15.             File[] files = file.listFiles() ;  
    16.             for(File f : files)  
    17.             {  
    18.                 //递归入口  
    19.                 deleteFiles(f) ;  
    20.                 f.delete() ;  
    21.             }  
    22.   
    23.         }  
    24.     }  
    25. }  
    26.   
    27. public class RecursionDeleteFile  
    28. {  
    29.     public static void main(String[] args)  
    30.     {  
    31.         File file = new File("E:/abc") ;  
    32.   
    33.         RecursionDeleteFileDemo.deleteFiles (file) ;  
    34.   
    35.   
    36.     }  
    37. }  

    File[] files = file.listFiles() ;    

    返回: 抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录

    测试类程序:RecursionDeleteFileDemoTest.java

    [java] view plain copy
    1. package com.junit3_8;  
    2.   
    3. import java.io.File;  
    4. import java.io.IOException;  
    5.   
    6. import junit.framework.Assert;  
    7. import junit.framework.TestCase;  
    8.   
    9. public class RecursionDeleteFileDemoTest extends TestCase{  
    10.       
    11.     //测试只有一个文件的目录  
    12.     public void testDeleteFiles()  
    13.     {  
    14.           
    15.         File file = null ;  
    16.         try {  
    17.               
    18.             file = new File("a.txt");  
    19.             file.createNewFile();  
    20.             RecursionDeleteFileDemo.deleteFiles(file);  
    21.               
    22.               
    23.         } catch (IOException e) {  
    24.               
    25.         Assert.fail();  
    26.               
    27.         }  
    28.           
    29.         boolean result ;  
    30.         //exists()判断该文件或目录是否存在  
    31.         result = file.exists();//false  
    32.         Assert.assertFalse(result);  
    33.     }  
    34.       
    35.       
    36.     /** 
    37.      * 测试生成多层目录,目录结构如下 
    38.      *  
    39.      *      root 
    40.      *       / 
    41.      *      /   
    42.      * child1   child2 
    43.      *       
    44.      */  
    45.     public void testDeleteFiles2()  
    46.     {  
    47.         File directory = null ;  
    48.           
    49.         try {  
    50.               
    51.             directory = new File("root");//构造一个子目录  
    52.             directory.mkdir();//建立一个新的根目录  
    53.               
    54.             File file0 = new File(directory,"xx.txt");  
    55.             file0.createNewFile();  
    56.               
    57.             //在root目录下生成两个子目录  
    58.             File file1 = new File(directory,"child1");  
    59.             File file2 = new File(directory,"child2");  
    60.             file1.mkdir();  
    61.             file2.mkdir();  
    62.               
    63.             //分别在file3和file4目录下建一个文本文件  
    64.             File file3 = new File(file1,"a.txt");  
    65.             File file4 = new File(file2,"b.txt");  
    66.             file3.createNewFile();  
    67.             file4.createNewFile();  
    68.               
    69.             RecursionDeleteFileDemo.deleteFiles(directory);  
    70.               
    71.               
    72.               
    73.               
    74.         }  
    75.         catch(Exception e)  
    76.         {  
    77.             Assert.fail();  
    78.         }  
    79.           
    80.         Assert.assertNotNull(directory);  
    81.         String[] str = directory.list();  
    82.         Assert.assertEquals(0, str.length);  
    83.         directory.delete();//删除根目录  
    84.           
    85.     }  
    86.       
    87.   
    88. }  
  • 相关阅读:
    SpringMVC中静态获取request对象 Spring中获取 HttpServletRequest对象【转载】
    springcloud 的loadbalancer 轮询算法切换方法 2021.4.3
    springboot项目启动增加图标
    rabbitmq 端口作用以及修改方法
    centos8 安装rabbitmq
    springcloud config client Value获取不到信息的问题的处理方法
    springcloud config配置git作为数据源然后启动报错 If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    Sublime Text的列模式如何操作
    centos8 安装redis
    jQuery简单的Ajax调用
  • 原文地址:https://www.cnblogs.com/hoobey/p/5293994.html
Copyright © 2011-2022 走看看