JAVA 删除文件夹 和 文件

原文链接:https://www.cnblogs.com/zrui-xyu/p/4777656.html

废话不多说,直接上代码:

/** 
 * 根据路径删除指定的文件夹或文件,无论存在与否 
 * @param sPath  要删除的文件夹或文件 
 * @param selfDeleted 是否文件夹目录本身
 * @return 删除成功返回 true,否则返回 false。               文件夹  或  单个文件 
 */  
public static boolean DeleteFolderOrFile(String sPath,boolean selfDeleted) {  
	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,selfDeleted);  
	}  
    }  
} 



/** 
 * 删除目录(文件夹)以及目录下的文件 
 * @param   sPath 要删除的文件夹路径 
 * @param   selfDeleted 是否文件夹目录本身
 * @return  目录删除成功返回true,否则返回false             文件夹
 */  
public static boolean deleteDirectory(String sPath,boolean selfDeleted) {  
	//如果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(),true);  
	    if (!flag) break;  
	}  
    }  
    if (!flag) return false;  
    
    //然后删除当前目录  
    if(selfDeleted){
	if (dirFile.delete()) {  
		return true;  
	    } else {  
		return false;  
	    } 
    }
    else{
	return true;
    }
	    
    
}  


/** 
 * 删除单个文件 
 * @param   sPath    被删除文件的文件名 
 * @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;  
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章