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