java 删除指定文件目录
2018-01-07 00:31
393 查看
今天没事 回头看看IO流的问题呢,顺便整理下删除文件的步骤。毕竟曾经也是让我头疼的问题。
本来想将删除目录以及子目录都放在一个方法处理的(在一个方法中只能删除子目录,执行完这个方法才会执行删除最外层目录的代码),但是没能处理的了,因为时间紧张也就没往下想(其实这样也挺好,简单、易懂)。希望各位知道正解后 可以告知,相同进步么
首先,理清文件夹和文件的删除方式,文件夹要用到回调函数(很重要哟),文件直接删除即可。其次就是对异常的处理 很是重要
不多说,上码:
package com.tpad.deldir;
import java.io.File;
import java.io.IOException;
import javax.swing.JOptionPane;
public class DelDir {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
// 创建一个File对象,封装目录
try {
String dirFullPath = "d:\\floder";
DelDir dd = new DelDir();
dd.delDir(dirFullPath);
dd.delSelf(dirFullPath);
JOptionPane.showMessageDialog(null, "ok");
} catch (IOException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
// 删除子文件目录
public void delDir(String dirFullPath) throws IOException {
// TODO Auto-generated method stub
File dirFile = new File(dirFullPath);
// 获取该目录下所有文件或文件夹的File数组
File[] fileArr = dirFile.listFiles();
// 检验数组是否为空
if (fileArr == null) { // 这里要想清楚,如果子文件夹为空,这里会不会执行下面的异常。 若你有这个疑问,认真想下数组以及listFiles()
throw new IOException(dirFile.getPath() + " (The system cannot find the specified source file)");
}
// 遍历File数组,得到每一个File对象
for (File file : fileArr) {
if (file.isDirectory()) {
delDir(file.toString());
if (file.delete() == false) {
throw new IOException(file.getPath() + " (Folder deletion failed)");
}
} else {
if (file.delete() == false) {
throw new IOException(file.getPath() + " (File deletion failed)");
}
}
}
}
// 删除父文件目录(最外层)
private void delSelf(String dirFullPath) throws IOException {
// TODO Auto-generated method stub
File dirFile = new File(dirFullPath);
if(dirFile.exists()) {
if(dirFile.delete() == false) {
throw new IOException(dirFile.getPath() + " (The system cannot find the specified source file)");
}
}
}
}
本来想将删除目录以及子目录都放在一个方法处理的(在一个方法中只能删除子目录,执行完这个方法才会执行删除最外层目录的代码),但是没能处理的了,因为时间紧张也就没往下想(其实这样也挺好,简单、易懂)。希望各位知道正解后 可以告知,相同进步么
首先,理清文件夹和文件的删除方式,文件夹要用到回调函数(很重要哟),文件直接删除即可。其次就是对异常的处理 很是重要
不多说,上码:
package com.tpad.deldir;
import java.io.File;
import java.io.IOException;
import javax.swing.JOptionPane;
public class DelDir {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
// 创建一个File对象,封装目录
try {
String dirFullPath = "d:\\floder";
DelDir dd = new DelDir();
dd.delDir(dirFullPath);
dd.delSelf(dirFullPath);
JOptionPane.showMessageDialog(null, "ok");
} catch (IOException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
// 删除子文件目录
public void delDir(String dirFullPath) throws IOException {
// TODO Auto-generated method stub
File dirFile = new File(dirFullPath);
// 获取该目录下所有文件或文件夹的File数组
File[] fileArr = dirFile.listFiles();
// 检验数组是否为空
if (fileArr == null) { // 这里要想清楚,如果子文件夹为空,这里会不会执行下面的异常。 若你有这个疑问,认真想下数组以及listFiles()
throw new IOException(dirFile.getPath() + " (The system cannot find the specified source file)");
}
// 遍历File数组,得到每一个File对象
for (File file : fileArr) {
if (file.isDirectory()) {
delDir(file.toString());
if (file.delete() == false) {
throw new IOException(file.getPath() + " (Folder deletion failed)");
}
} else {
if (file.delete() == false) {
throw new IOException(file.getPath() + " (File deletion failed)");
}
}
}
}
// 删除父文件目录(最外层)
private void delSelf(String dirFullPath) throws IOException {
// TODO Auto-generated method stub
File dirFile = new File(dirFullPath);
if(dirFile.exists()) {
if(dirFile.delete() == false) {
throw new IOException(dirFile.getPath() + " (The system cannot find the specified source file)");
}
}
}
}
相关文章推荐
- JavaIO之删除指定目录(递归删除,先删除目录下的文件再删除目录)
- java 使用递归获取指定文件路径目录,删除指定的文件后缀(可扩展,根据具体需要的删除的后缀进行配置)~~
- java 递归实现删除或查询指定目录下的全部文件
- 一个使用多线程删除指定目录及子目录下所有指定文件的Java程序(源码)
- java删除指定目录及其文件
- Java实现将目录下指定类型文件全部删除_FileFilter文件过滤
- JAVA基础回顾2 遍历指定文件目录 遍历删除目录 指定文件清单列表
- 删除指定目录下的所有文件的java类
- java常用方法之遍历目录,删除指定文件
- java删除指定目录中的文件或文件夹
- Java 删除目录 指定文件
- java递归删除指定目录下的文件和文件夹
- java删除指定目录下指定格式文件的方法
- Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件
- 删除指定目录下的所有文件的java类
- java删除指定文件夹下的文件和目录
- Java删除某一目录下指定后缀所有文件
- 删除指定目录下的所有文件的java类
- 删除指定目录下的所有文件包括目录
- JAVA中删除目录文件