- package com.tw.file.util;
- import java.io.File;
- /**
- * <p>递归删除目录和文件的程序 </p>
- * @author tw 2009-07-16
- *
- */
- public class DelFileUtils {
- public static void main(String[] args) {
- //则试OK
- String rootDir = "E:\\delDir";
- String delDirName = ".txt";
- DelFileUtils del = new DelFileUtils();
- System.out.println("-------------del ---status----");
- del.FindDirectory(rootDir,delDirName);
- System.out.println("-------------del ---end----");
- }
- /**
- * 删除目录下指定类型文件或目录
- * @param root 是根目录的绝对路径
- * @author tw 2009-07-16
- * @param delName 要删的类型
- */
- public static void FindDirectory(String root,String delName){
- //root是根目录的绝对路径
- File directory = new File(root);
- File[] files = directory.listFiles();
- //根目录为空
- if(files.length ==0){
- System.out.println(root+"根目录为空!");
- return;
- }
- else{
- for(int i=0;i<files.length;i++){
- if(files[i].isDirectory()){
- System.out.println("--------name:"+files[i].getName());
- //根目录的子文件夹就是要删除的文件夹
- if(files[i].getName().equals(delName)){
- System.out.println(files[i].getAbsolutePath());
- DelDirectory(files[i]);
- }
- //根目录的子文件夹不是要删除的文件夹
- else{
- FindDirectory(files[i].getAbsolutePath(),delName);
- }
- }
- }
- }
- }
- /**
- * 删除目录以及目录下的所有文件
- * @author tw 2009-07-16
- * @param directory 文件名
- */
- public static void DelDirectory(File directory){
- File[] children = directory.listFiles();
- System.out.println("---------------method del---------------------");
- if(children.length==0){
- directory.delete();
- System.out.println("\t删除目录"+directory.getName());
- }
- else{
- for(int i=0;i<children.length;i++){
- if(children[i].isFile()){
- children[i].delete();
- System.out.println("\t删除文件"+children[i].getName());
- }
- else if(children[i].isDirectory()){
- DelDirectory(children[i]);
- System.out.println("\t"+children[i].getAbsolutePath());
- }
- }
- directory.delete();
- System.out.println("\t删除目录"+directory.getName());
- }
- }
- }