删除工具类:

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.csdn.net/love_ubuntu/article/details/6673722

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

Java中使用File类删除文件夹和文件的更多相关文章

  1. java中的File类

    File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...

  2. 用Java中的File类模拟实现对系统文件的增删改查效果

    码字不易,三连支持一波吧 IO操作向来是各大语言的热区,而对文件的操作也是重中之重. 那么在Java中也给我们提供了很多关于文件操作的类.今天我就用一个比较基本的File类来模拟实现对文件的增删改查效 ...

  3. java中关于File类的细说

    File类是我们接触的比较多的类,当初学习是真是傻傻分不清啊.今天就总结一下file的一些比较不好区分的地方. 首先:当然就是构造方法 File f = new File("文件路径&quo ...

  4. [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法

    前言:有时候我们可能会遇到这样一个问题:需要遍历一个包含极多文件的文件夹,首先想到的肯定是使用File.list()方法,该方法返回一个String[],但是如果文件达到几亿呢?这个时候我们就需要分批 ...

  5. Java IO流-File类的使用示例-创建文件夹和文件的正确方法

    当创建一个文件时,比如:E:\\test\\test.txt,此时若文件夹test不存在,那么直接创建文件会出错,故首先要判断文件夹是否存在,不存在的话要首先创建文件夹. public class F ...

  6. 详谈JAVA中的file类与IO流

    File类 位置于java.io包构造方法:File(String parent, String child)new file("d:\\","a.txt") ...

  7. Java中的File类,递归是什么?

    一.IO概述 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作. 当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作. 因此我们把这种输入和输出动作称为 ...

  8. java中关于File类的mkdirs()和FIle()构造方法在windows环境内网测试总结

    环境:环境是内网windows,传入路径的时候不带盘符,并且服务器的win10也不是超级管理员账户 关于File类的mkdirs()远程访问创建不了文件和路径的问题. 如果浏览器操作者是windows ...

  9. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...

随机推荐

  1. 关于sizeof的几个问题

    #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { char *ps ...

  2. dlib 基于摄像流检测眨眼次数

    眼睛纵横比(EAR) 在讨论EAR之前,先看看68个人脸特征点:  人脸特征点检测本身的算法是很复杂的,dlib中给出了相关的实现. 每只眼睛由6个(x,y)坐标表示,从眼睛的左角开始,然后围绕该区域 ...

  3. jackson的readTree有坑

    {"}] readTree认为上面的字符是json,坑啊 alibaba的fastjson 无论JSONObject.parseObject还是JSONObject.parseObject ...

  4. go语言从例子开始之Example29.关闭通道

    关闭 一个通道意味着不能再向这个通道发送值了.这个特性可以用来给这个通道的接收方传达工作已经完成的信息. Example: package main import "fmt" // ...

  5. [HTML知识体系]meta标签的常见用法

    1.meta是什么 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. 标签位于文档的头部,不包含任何内容. 标签的属性定义了与文档相关联的名称 ...

  6. Java jvisualvm简要说明(转)

    转自:http://blog.csdn.net/a19881029/article/details/8432368 jvisualvm能干什么:监控内存泄露,跟踪垃圾回收,执行时内存.cpu分析,线程 ...

  7. 解决 'express' 不是内部或外部命令,也不是可运行的程序

    express-generator >npm install -g express-generator 就可以了

  8. 【串线篇】SpringMvc框架乱码

    提交的数据可能有乱码: * 请求乱码: *      GET请求:改server.xml:在8080端口处URIEncoding="UTF-8" *      POST请求: * ...

  9. 【串线篇】spring泛型依赖注入原理

    spring泛型依赖注入原理 不管三七二十一 servlet :加注解@servlet service:加注解@service dao:加注解@Repository 这相当于在容器中注册这些个类

  10. laravel 跨域解决方案

    我们在用 laravel 进行开发的时候,特别是前后端完全分离的时候,由于前端项目运行在自己机器的指定端口(也可能是其他人的机器) , 例如 localhost:8000 , 而 laravel 程序 ...