DeleteFileUtil.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package cn.com.lzt.personnelbasearchivesmanage.util;
  2. import java.io.File;
  3. public class DeleteFileUtil {
  4. /**
  5. * @author zbw
  6. * 2017-12-18
  7. * @param args
  8. */
  9. public static void main(String[] args) {
  10. // TODO Auto-generated method stub
  11. }
  12. /**
  13. * 删除文件,可以是文件或文件夹
  14. *
  15. * @param fileName
  16. * 要删除的文件名
  17. * @return 删除成功返回true,否则返回false
  18. */
  19. public static boolean delete(String fileName) {
  20. File file = new File(fileName);
  21. if (!file.exists()) {
  22. // System.out.println("删除文件失败:" + fileName + "不存在!");
  23. return false;
  24. } else {
  25. if (file.isFile())
  26. return deleteFile(fileName);
  27. else
  28. return deleteDirectory(fileName);
  29. }
  30. }
  31. /**
  32. * 删除单个文件
  33. *
  34. * @param fileName
  35. * 要删除的文件的文件名
  36. * @return 单个文件删除成功返回true,否则返回false
  37. */
  38. public static boolean deleteFile(String fileName) {
  39. File file = new File(fileName);
  40. // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
  41. if (file.exists() && file.isFile()) {
  42. if (file.delete()) {
  43. // System.out.println("删除单个文件" + fileName + "成功!");
  44. return true;
  45. } else {
  46. // System.out.println("删除单个文件" + fileName + "失败!");
  47. return false;
  48. }
  49. } else {
  50. // System.out.println("删除单个文件失败:" + fileName + "不存在!");
  51. return false;
  52. }
  53. }
  54. /**
  55. * 删除目录及目录下的文件
  56. *
  57. * @param dir
  58. * 要删除的目录的文件路径
  59. * @return 目录删除成功返回true,否则返回false
  60. */
  61. public static boolean deleteDirectory(String dir) {
  62. // 如果dir不以文件分隔符结尾,自动添加文件分隔符
  63. if (!dir.endsWith(File.separator))
  64. dir = dir + File.separator;
  65. File dirFile = new File(dir);
  66. // 如果dir对应的文件不存在,或者不是一个目录,则退出
  67. if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
  68. // System.out.println("删除目录失败:" + dir + "不存在!");
  69. return false;
  70. }
  71. boolean flag = true;
  72. // 删除文件夹中的所有文件包括子目录
  73. File[] files = dirFile.listFiles();
  74. for (int i = 0; i < files.length; i++) {
  75. // 删除子文件
  76. if (files[i].isFile()) {
  77. flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
  78. if (!flag)
  79. break;
  80. }
  81. // 删除子目录
  82. else if (files[i].isDirectory()) {
  83. flag = DeleteFileUtil.deleteDirectory(files[i]
  84. .getAbsolutePath());
  85. if (!flag)
  86. break;
  87. }
  88. }
  89. if (!flag) {
  90. // System.out.println("删除目录失败!");
  91. return false;
  92. }
  93. // 删除当前目录
  94. if (dirFile.delete()) {
  95. // System.out.println("删除目录" + dir + "成功!");
  96. return true;
  97. } else {
  98. return false;
  99. }
  100. }
  101. }