Java中使用File类删除文件夹和文件

本文介绍了一个用于递归删除文件及目录的Java工具类,并通过三个单元测试案例展示了如何使用JUnit验证其正确性。

删除工具类:

import java.io.File;  
  
public class DeleteAll{    
 public static void deleteAll(File file){  
   if(file.isFile() || file.list().length ==0){  
     file.delete();       
   }else{      
     File[] files = file.listFiles();  
     for (int i = 0; i < files.length; i++) {  
      deleteAll(files[i]);  
      files[i].delete();      
     }   
     if(file.exists())         //如果文件本身就是目录 ,就要删除目录  
    file.delete();  
   }  
 }  
  
 public static void main(String[] args){       
     File f = new File("f:"+File.separator+"test");  
     deleteAll(f);  
 }  
}

 单元测试Junit:

(注意:Assert.assertFalse(cond):判断参数cond是否为false,如该值为true,则抛出含有参数message值的异常信息)

package com.jzm;  
import java.io.File;  
import junit.framework.Assert;  
import junit.framework.TestCase;  
  
public class DeleteAllTest extends TestCase{    
    public void testDeleteAll(){   //如果是一个文件            
    File file  = null;            
        try{            
          file = new File("f:\\test\\a.txt");            
          file.createNewFile();                        
          DeleteAll.deleteAll(file);  
        }catch (Exception e) {  
            // TODO: handle exception  
        }     
          Assert.assertFalse(file.exists());        
    }  
      
      
    public void testDeleteAll2(){         //如果是一个一级目录            
    File directory  = null;   
          try{                            
            directory  = new File("f:"+ File.separator +"dirT2");                 
            directory.mkdir();  
              
            File file1 = new File(directory, "t1.txt");                
            File file2 = new File(directory, "t2.txt");                
            file1.createNewFile();                
            file2.createNewFile();            
              
            DeleteAll.deleteAll(directory);                     
          }catch (Exception e) {  
                // TODO: handle exception                 
          }                     
            //判断是否为false
            Assert.assertFalse(directory.exists());       
        }  
      
    public void testDeleteAll3(){          //如果是一个二级目录     
    File directory  = null;     
        try{                      
        directory  = new File("f:"+ File.separator +"dirT3");          
        directory.mkdir();  
          
        File  dir1  = new File(directory,"dir1");  
        dir1.mkdir();       
        File  dir2  = new File(directory,"dir2");  
        dir2.mkdir();  
        
        File file1 = new File(dir1, "t1.txt");            
        File file2 = new File(dir2, "t2.txt");            
        file1.createNewFile();            
        file2.createNewFile();   
                   
        DeleteAll.deleteAll(directory);                 
        }catch (Exception e) {  
            // TODO: handle exception                 
        }             
        Assert.assertFalse(directory.exists());       
    }  
}  

关于Assert:
Assert.Fail ()                          在不检查任何条件的情况下使断言失败。
Assert.Fail (String)                 在不检查任何条件的情况下使断言失败。显示消息。
Assert.Fail (String, Object[])   在不检查任何条件的情况下使断言失败。显示一则消息,并向该消息应用指定的格式。

Assert.Fail (String):              运行到该句时,直接使该断言失败,并且将括号中的String参数直接显示出来;

Assert.assertFalse(java.lang.String message,boolean condition):

             判断参数condition是否为false,假如该参数值为true,则抛出含有参数message值的异常信息。

 

http://blog.youkuaiyun.com/love_ubuntu/article/details/6673722

http://kang.iteye.com/blog/568991

 

在当今社会中,人们越来越多地依靠计算机来办公。每个人也习惯于在计算机中保存自已的各种文档、视频、相片。这在方便每个人的同时,也会存在一些潜在的危险。比如自己已经用操作系统(指窗面操作系统Windows系列)删除过的文件,会被一些文件恢复文具进行恢复,这在某些时候会给人带来高兴。但对于你不想被恢复的已经删除过的文件来说,则是一种风险,因为里面有自己的机密。 局域网、互联网越来越广泛地应用到生活工作中,计算机网络技术在给人带来方便的同时,也带来了机密文件被"窃取"的风险。再加上计算机病毒的猖獗传播,更加大了文件泄密的风险。 如何才能避免自己电脑上不用的机密文件被别人窃取? 就像办公室会放置一台碎纸机一样,把不用的纸质机密文件粉碎。那每个人的计算机中其实也需要这样的一台"碎纸机",把不需要的机密文档彻底地删除,不会被删除恢复工具来恢复。这在另一方面也防止计算机病毒来"窃取"你的机密文件。 因于此,彻底删除文件File Delete Absolutely) 1.02版本应运而生,你可以免费使用它。这款系统工具软件由中国的一名硕士生马根峰所开发,专门用来将自己电脑上不用的机密文件彻底删除,不会被任何文件恢复工具所恢复。使你能够完全保护好自己的机密。 大家可以进行免费使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值