packagefile;importjava.io.File;/*** 删除文件和目录
**/
public classDeleteFileUtil {/*** 删除文件,可以是文件或文件夹
*
*@paramfileName
* 要删除的文件名
*@return删除成功返回true,否则返回false*/
public static booleandelete(String fileName) {
File file= newFile(fileName);if (!file.exists()) {
System.out.println("删除文件失败:" + fileName + "不存在!");return false;
}else{if(file.isFile())returndeleteFile(fileName);else
returndeleteDirectory(fileName);
}
}/*** 删除单个文件
*
*@paramfileName
* 要删除的文件的文件名
*@return单个文件删除成功返回true,否则返回false*/
public static booleandeleteFile(String fileName) {
File file= newFile(fileName);//如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() &&file.isFile()) {if(file.delete()) {//System.out.println("删除单个文件" + fileName + "成功!");
return true;
}else{
System.out.println("删除单个文件" + fileName + "失败!");return false;
}
}else{
System.out.println("删除单个文件失败:" + fileName + "不存在!");return false;
}
}/*** 删除目录及目录下的文件
*
*@paramdir
* 要删除的目录的文件路径
*@return目录删除成功返回true,否则返回false*/
public static booleandeleteDirectory(String dir) {//如果dir不以文件分隔符结尾,自动添加文件分隔符
if (!dir.endsWith(File.separator))
dir= dir +File.separator;
File dirFile= newFile(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[i].isFile()) {
flag=DeleteFileUtil.deleteFile(files[i].getAbsolutePath());if (!flag)break;
}//删除子目录
else if(files[i].isDirectory()) {
flag=DeleteFileUtil.deleteDirectory(files[i]
.getAbsolutePath());if (!flag)break;
}
}if (!flag) {
System.out.println("删除目录失败!");return false;
}//删除当前目录
if(dirFile.delete()) {//System.out.println("删除目录" + dir + "成功!");
return true;
}else{return false;
}
}public static voidmain(String[] args) {// //删除单个文件//String file = "c:/test/test.txt";//DeleteFileUtil.deleteFile(file);//System.out.println();//删除一个目录
String dir = "D:/home/web/upload/upload/files";
DeleteFileUtil.deleteDirectory(dir);//System.out.println();// //删除文件//dir = "c:/test/test0";//DeleteFileUtil.delete(dir);
}
}