自己写了段删除文件夹的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