Java中使用File类删除文件夹和文件
删除工具类:
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值的异常信息。
Java中使用File类删除文件夹和文件的更多相关文章
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
- 用Java中的File类模拟实现对系统文件的增删改查效果
码字不易,三连支持一波吧 IO操作向来是各大语言的热区,而对文件的操作也是重中之重. 那么在Java中也给我们提供了很多关于文件操作的类.今天我就用一个比较基本的File类来模拟实现对文件的增删改查效 ...
- java中关于File类的细说
File类是我们接触的比较多的类,当初学习是真是傻傻分不清啊.今天就总结一下file的一些比较不好区分的地方. 首先:当然就是构造方法 File f = new File("文件路径&quo ...
- [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法
前言:有时候我们可能会遇到这样一个问题:需要遍历一个包含极多文件的文件夹,首先想到的肯定是使用File.list()方法,该方法返回一个String[],但是如果文件达到几亿呢?这个时候我们就需要分批 ...
- Java IO流-File类的使用示例-创建文件夹和文件的正确方法
当创建一个文件时,比如:E:\\test\\test.txt,此时若文件夹test不存在,那么直接创建文件会出错,故首先要判断文件夹是否存在,不存在的话要首先创建文件夹. public class F ...
- 详谈JAVA中的file类与IO流
File类 位置于java.io包构造方法:File(String parent, String child)new file("d:\\","a.txt") ...
- Java中的File类,递归是什么?
一.IO概述 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作. 当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作. 因此我们把这种输入和输出动作称为 ...
- java中关于File类的mkdirs()和FIle()构造方法在windows环境内网测试总结
环境:环境是内网windows,传入路径的时候不带盘符,并且服务器的win10也不是超级管理员账户 关于File类的mkdirs()远程访问创建不了文件和路径的问题. 如果浏览器操作者是windows ...
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...
随机推荐
- leetcode-7-整数翻转
问题: package com.example.demo; public class Test7 { /** * 整数翻转 123,-123,120等数字 * 思路: * 1.获取原始数字的%10的余 ...
- 44.和为S的两个数字
题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 思路分析: 数组是递增排序的,我们先将数组遍历一遍 ...
- Apache2.2学习笔记全集
一.基本介绍 待补充... 二.Apache默认配置文件解释 # 定义apache运行的目录,即程序所在的位置 ServerRoot "/usr/local/apache2" # ...
- .NET Core TDD 前传: 编写易于测试的代码 一 -- 缝
转载于: https://www.cnblogs.com/cgzl/p/9365955.html 有时候不是我们不想做单元测试, 而是这代码写的实在是没法测试.... 举个例子, 如果一辆汽车在产出后 ...
- Linux-PAM认证
在新主机更改用户密码的时候,经常会出现"passwd: Have exhausted maximum number of retries for service"的报错 [root ...
- pipeline语法之判断一个文件存在与否
先看一个例子,原理,根据命令返回的状态值来判断它的存在与否 pipeline { agent any stages { stage("check file if exists"){ ...
- JavaSE---多线程---线程的创建、启动
1.概述 1.1 Java中使用Thread类表示线程: 所有的线程对象必须是Thread类 或 其子类的实例: 每条线程的作用:完成一定的任务: Java中使用run方法来封装线程执行体 ...
- numpy.unique
Find the unique elements of an array. Returns the sorted unique elements of an array. There are thre ...
- QByteArray和十六进制的QString(char*)相互转换
#include <QCoreApplication> #include <QDebug> #include <QDataStream> QByteArray He ...
- vue基础六
列表渲染 1.v-for 我们用 v-for 指令根据一组数组的选项列表进行渲染. v-for 指令需要以 item in items 形式的特殊语法(也可以用of代替in), items是源数据数组 ...