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();
}
}