JAVA删除文件夹

来源:互联网 发布:mac系统清理软件 编辑:程序博客网 时间:2024/05/18 02:58

自己写了段删除文件夹的JAVA代码。因为java.io.File只能删除文件和空文件夹,所以写了这段代码。采用树的后根序遍历的算法写成。没有使用递归,而是用的循环方式。使用file.getParent()方法来获得父节点。

下面是代码:


import java.io.File;/** * 删除文件或者文件夹 * @author zhangchao * */public class FileUtils {/** 这个方法删除文件或者文件夹 */public final static void del(File file) {// 如果是文件就直接删除.if (file.isFile()) {file.delete();return;}// 如果是文件夹就继续向下执行代码File[] list = null;File currentDir = file;while (currentDir.isDirectory()) {// 取得子文件或者子文件夹list = currentDir.listFiles();// 如果当前文件夹有子文件或者子文件夹if (null != list && list.length > 0) {// 遍历每一个子节点for (File tmp : list) {// 如果子节点是文件,直接删除// 如果子节点是文件夹,把currentDir赋值为子节点if (tmp.isFile()) {tmp.delete();} else {currentDir = tmp;break;}}} // 如果 'currentDir' 引用指向用户输入的'file'变量,并且文件夹 // 是空的,删除文件夹并且终止循环// delete the directory and stop the loop.else if (currentDir.equals(file)) {// 删除空文件夹currentDir.delete();// 终止循环break;}// 如果 'currentDir' 引用指向空文件夹并且这个空文件夹不是用户输入的文件夹else {// 保存父文件夹.File tmpDir = currentDir.getParentFile(); // 删除空文件夹.currentDir.delete();// 使 'currentDir' 引用指向父文件夹.currentDir = tmpDir;}}}}


下面演示如何使用这个方法:


package zc;import java.io.File;public class Main {public static void main(String[] args) {FileUtils.del(new File("E:/啊啊啊/"));}}

下面是代码的下载链接:  http://download.csdn.net/detail/zhangchao19890805/6044377


原创粉丝点击