package com.dsp.rpc.metricelf;
import java.io.File;
/**
* @author bianqh
* 传入文件路径,删除文件,以及文件夹下的所有文件
*/
public class DeleteDirUtil {
/**
* 根据路径删除指定目录和文件
* @param sPath :路径
* @return :删除成功返回true,否则返回false
*/
public static boolean deleteFolder(String sPath){
File file = new File(sPath);
if(!file.exists()){
return false;
}else {
if(file.isFile()){
return deleteFile(sPath);
}else {
return deleteDirectory(sPath);
}
}
}
/**
* 删除单个文件
* @param sPath:文件路径
* @return :是否删除成功
*/
private static boolean deleteFile(String sPath){
boolean flag = false;
File file = new File(sPath);
if(file.isFile() && file.exists()){
flag = file.delete();
}
return flag;
}
/**
* 删除目录以及目录下的文件
* @param sPath :目录路径
* @return :是否删除成功
*/
private static boolean deleteDirectory(String sPath){
if(!sPath.endsWith(File.separator)){
sPath = sPath + File.separator;
}
File dirFile = new File(sPath);
if(!dirFile.exists() || !dirFile.isDirectory()){
return false;
}
boolean flag = true;
File[] files = dirFile.listFiles();
if(files!=null){
for (File ff : files) {
if(ff.isFile()){
flag = deleteFile(ff.getAbsolutePath());
if(!flag) { break; }
}else {
flag = deleteDirectory(ff.getAbsolutePath());
if(!flag) { break; }
}
}
}
if(!flag) { return false; }
//删除当前目录
return dirFile.delete();
}
}