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. }  
  • 相关阅读:
    算法与数据结构(十五) 归并排序(Swift 3.0版)
    算法与数据结构(十四) 堆排序 (Swift 3.0版)
    算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)
    算法与数据结构(十二) 散列(哈希)表的创建与查找(Swift版)
    算法与数据结构(十一) 平衡二叉树(AVL树)(Swift版)
    算法与数据结构(十) 二叉排序树的查找、插入与删除(Swift版)
    算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找(Swift版)
    算法与数据结构(八) AOV网的关键路径(Swift版)
    算法与数据结构(七) AOV网的拓扑排序(Swift版)
    算法与数据结构(六) 迪杰斯特拉算法的最短路径(Swift版)
  • 原文地址:https://www.cnblogs.com/hoobey/p/5293994.html
Copyright © 2011-2022 走看看