JAVA删除当前目录及其子目录和该目录下的所有文件

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 09:08   11   0
import java.io.File;

/**
 * 删除文件夹  
 * @author wande
 *
 */
public class DeleteField {
 /** 
  *  根据路径删除指定的目录,无论存在与否 
  *@param sPath  要删除的目录path 
  *@return 删除成功返回 true,否则返回 false。 
  */  
 public static boolean DeleteFolder(String sPath) {  
     boolean flag = false;
     File file = new File(sPath);  
     // 判断目录或文件是否存在  
     if (!file.exists()) {  // 不存在返回 false  
         return flag;  
     } else {  
         // 判断是否为文件  
         if (file.isFile()) {  // 为文件时调用删除文件方法  
             return deleteFile(sPath);  
         } else {  // 为目录时调用删除目录方法  
             return deleteDirectory(sPath);  
         }  
     }  
 }  
 
 /** 
  * 删除单个文件 
  * @param   sPath 被删除文件path 
  * @return 删除成功返回true,否则返回false 
  */  
 public static boolean deleteFile(String sPath) {  
     boolean flag = false;  
     File file = new File(sPath);  
     // 路径为文件且不为空则进行删除  
     if (file.isFile() && file.exists()) {  
         file.delete();  
         flag = true;  
     }  
     return flag;  
 }  
 
 /** 
  * 删除目录以及目录下的文件 
  * @param   sPath 被删除目录的路径 
  * @return  目录删除成功返回true,否则返回false 
  */  
 public static boolean deleteDirectory(String sPath) {  
     //如果sPath不以文件分隔符结尾,自动添加文件分隔符  
     if (!sPath.endsWith(File.separator)) {  
         sPath = sPath + File.separator;  
     }  
     File dirFile = new File(sPath);  
     //如果dir对应的文件不存在,或者不是一个目录,则退出  
     if (!dirFile.exists() || !dirFile.isDirectory()) {  
         return false;  
     }  
     boolean flag = true;  
     //删除文件夹下的所有文件(包括子目录)  
     File[] files = dirFile.listFiles();  
     for (int i = 0; i < files.length; i++) {  
         //删除子文件  
         if (files[i].isFile()) {  
             flag = deleteFile(files[i].getAbsolutePath());  
             if (!flag) break;  
         } //删除子目录  
         else {  
             flag = deleteDirectory(files[i].getAbsolutePath());  
             if (!flag) break;  
         }  
     }  
     if (!flag) return false;  
     //删除当前目录  
     if (dirFile.delete()) {  
         return true;  
     } else {  
         return false;  
     }  
 }  
}  

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP