/*** 删除文件,可以是文件或文件夹
*
*@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;
}
}