JUnit 3.8 演示递归删除文件目录的 测试类程序 .
2024-10-19 11:47:02
用递归方式来实现删除硬盘的文件或目录(空文件夹)
首先要找到递归的入口及出口,这点很重要,成败在此,呵呵!
代码实现:
- import java.io.File ;
- class RecursionDeleteFileDemo //利用递归 删除 文件或目录 操作
- {
- public static void deleteFiles(File file)
- {
- //递归出口
- //判断目前文件,如果是文件 或 是一个空的文件夹,则删除
- if(file.isFile() || file.list().length == 0)
- {
- file.delete() ;
- }
- else
- {
- File[] files = file.listFiles() ;
- for(File f : files)
- {
- //递归入口
- deleteFiles(f) ;
- f.delete() ;
- }
- }
- }
- }
- public class RecursionDeleteFile
- {
- public static void main(String[] args)
- {
- File file = new File("E:/abc") ;
- RecursionDeleteFileDemo.deleteFiles (file) ;
- }
- }
File[] files = file.listFiles() ;
返回: 抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录
测试类程序:RecursionDeleteFileDemoTest.java
- package com.junit3_8;
- import java.io.File;
- import java.io.IOException;
- import junit.framework.Assert;
- import junit.framework.TestCase;
- public class RecursionDeleteFileDemoTest extends TestCase{
- //测试只有一个文件的目录
- public void testDeleteFiles()
- {
- File file = null ;
- try {
- file = new File("a.txt");
- file.createNewFile();
- RecursionDeleteFileDemo.deleteFiles(file);
- } catch (IOException e) {
- Assert.fail();
- }
- boolean result ;
- //exists()判断该文件或目录是否存在
- result = file.exists();//false
- Assert.assertFalse(result);
- }
- /**
- * 测试生成多层目录,目录结构如下
- *
- * root
- * /\
- * / \
- * child1 child2
- *
- */
- public void testDeleteFiles2()
- {
- File directory = null ;
- try {
- directory = new File("root");//构造一个子目录
- directory.mkdir();//建立一个新的根目录
- File file0 = new File(directory,"xx.txt");
- file0.createNewFile();
- //在root目录下生成两个子目录
- File file1 = new File(directory,"child1");
- File file2 = new File(directory,"child2");
- file1.mkdir();
- file2.mkdir();
- //分别在file3和file4目录下建一个文本文件
- File file3 = new File(file1,"a.txt");
- File file4 = new File(file2,"b.txt");
- file3.createNewFile();
- file4.createNewFile();
- RecursionDeleteFileDemo.deleteFiles(directory);
- }
- catch(Exception e)
- {
- Assert.fail();
- }
- Assert.assertNotNull(directory);
- String[] str = directory.list();
- Assert.assertEquals(0, str.length);
- directory.delete();//删除根目录
- }
- }
最新文章
- Abundant Resources
- [Linux] LD_LIBRARY_PATH
- oc程序编译【-framework Foundation 编译】
- Wooyun隐写术总结
- mysql在一台服务器搭建主从1
- flash读取XML节点内容以及节点属性
- WPF FindName()没找到指定名称的元素
- 使用shiro安全框架上传文件时用HttpSession获取ServletContext为null问题解决方法。
- Android文本Flood it游戏源代码
- face-alignment:用 pytorch 实现的 2D 和 3D 人脸对齐库
- 如何安装Magento 2.0
- 一些不常用但又很有用的css小tips
- Spring cloud系列之Zuul配置项中sensitiveHeaders和ignoredHeaders
- 遍历出文档内所有元素的tagName
- Java实现随机生成车牌号
- 【亲测】<;g++/gcc>;CentOS下g++: command not found问题的解决(c++环境安装)
- ICC 常用命令
- 线程同步之mutex和event区别
- Spring Security教程(二):通过数据库获得用户权限信息
- 1、一、Introduction(入门): 0、Introduction to Android(引进到Android)