游_客 发表于 2009-2-20 11:18:00

Java

收藏自javaeye

package book.io;   
   
import java.io.File;   
   
/**   
*   
* @author XWZ   
* 2007-11-27   
* 删除文件或目录   
*/   
public class DeleteFileUtil {   
    /**   
   * 删除文件,可以是单个文件或文件夹   
   * @param   fileName    待删除的文件名   
   * @return 文件删除成功返回true,否则返回false   
   */   
    public static boolean delete(String fileName){   
      File file = new File(fileName);   
      if(!file.exists()){   
            System.out.println("删除文件失败:" fileName "文件不存在");   
            return false;   
      }else{   
            if(file.isFile()){   
                  
                return deleteFile(fileName);   
            }else{   
                return deleteDirectory(fileName);   
            }   
      }   
    }   
      
    /**   
   * 删除单个文件   
   * @param   fileName    被删除文件的文件名   
   * @return 单个文件删除成功返回true,否则返回false   
   */   
    public static boolean deleteFile(String fileName){   
      File file = new File(fileName);   
      if(file.isFile() && file.exists()){   
            file.delete();   
            System.out.println("删除单个文件" fileName "成功!");   
            return true;   
      }else{   
            System.out.println("删除单个文件" fileName "失败!");   
            return false;   
      }   
    }   
      
    /**   
   * 删除目录(文件夹)以及目录下的文件   
   * @param   dir 被删除目录的文件路径   
   * @return目录删除成功返回true,否则返回false   
   */   
    public static boolean deleteDirectory(String dir){   
      //如果dir不以文件分隔符结尾,自动添加文件分隔符   
      if(!dir.endsWith(File.separator)){   
            dir = dir File.separator;   
      }   
      File dirFile = new File(dir);   
      //如果dir对应的文件不存在,或者不是一个目录,则退出   
      if(!dirFile.exists() || !dirFile.isDirectory()){   
            System.out.println("删除目录失败" dir "目录不存在!");   
            return false;   
      }   
      boolean flag = true;   
      //删除文件夹下的所有文件(包括子目录)   
      File[] files = dirFile.listFiles();   
      for(int i=0;i<files.length;i){   
            //删除子文件   
            if(files.isFile()){   
                flag = deleteFile(files.getAbsolutePath());   
                if(!flag){   
                  break;   
                }   
            }   
            //删除子目录   
            else{   
                flag = deleteDirectory(files.getAbsolutePath());   
                if(!flag){   
                  break;   
                }   
            }   
      }   
            
      if(!flag){   
            System.out.println("删除目录失败");   
            return false;   
      }   
            
      //删除当前目录   
      if(dirFile.delete()){   
            System.out.println("删除目录" dir "成功!");   
            return true;   
      }else{   
            System.out.println("删除目录" dir "失败!");   
            return false;   
      }   
    }   
      
    public static void main(String[] args) {   
      //String fileName = "g:/temp/xwz.txt";   
      //DeleteFileUtil.deleteFile(fileName);   
      String fileDir = "G:/temp/temp0/temp1";   
      //DeleteFileUtil.deleteDirectory(fileDir);   
      DeleteFileUtil.delete(fileDir);   
            
    }   
}
页: [1]
查看完整版本: Java