个人学习记录,仅供大家参考
引自http://kxjhlele.iteye.com/blog/323657
1 /***************删除开始******************/ 2 /** 3 * 根据路径删除指定的目录或文件,无论存在与否 4 *@param sPath 要删除的目录或文件 5 *@return 删除成功返回 true,否则返回 false。 6 */ 7 public boolean DeleteFolder(String sPath) { 8 boolean flag = false; 9 file = new File(sPath); 10 // 判断目录或文件是否存在 11 if (!file.exists()) { // 不存在返回 false 12 return flag; 13 } else { 14 // 判断是否为文件 15 if (file.isFile()) { // 为文件时调用删除文件方法 16 return deleteFile(sPath); 17 } else { // 为目录时调用删除目录方法 18 return deleteDirectory(sPath); 19 } 20 } 21 } 22 /** 23 * 删除单个文件 24 * @param sPath 被删除文件的文件名 25 * @return 单个文件删除成功返回true,否则返回false 26 */ 27 public boolean deleteFile(String sPath) { 28 boolean flag = false; 29 file = new File(sPath); 30 // 路径为文件且不为空则进行删除 31 if (file.isFile() && file.exists()) { 32 file.delete(); 33 flag = true; 34 } 35 return flag; 36 } 37 38 /** 39 * 删除目录(文件夹)以及目录下的文件 40 * @param sPath 被删除目录的文件路径 41 * @return 目录删除成功返回true,否则返回false 42 */ 43 public boolean deleteDirectory(String sPath) { 44 //如果sPath不以文件分隔符结尾,自动添加文件分隔符 45 if (!sPath.endsWith(File.separator)) { 46 sPath = sPath + File.separator; 47 } 48 File dirFile = new File(sPath); 49 //如果dir对应的文件不存在,或者不是一个目录,则退出 50 if (!dirFile.exists() || !dirFile.isDirectory()) { 51 return false; 52 } 53 boolean flag = true; 54 //删除文件夹下的所有文件(包括子目录) 55 File[] files = dirFile.listFiles(); 56 for (int i = 0; i < files.length; i++) { 57 //删除子文件 58 if (files[i].isFile()) { 59 flag = deleteFile(files[i].getAbsolutePath()); 60 if (!flag) break; 61 } //删除子目录 62 else { 63 flag = deleteDirectory(files[i].getAbsolutePath()); 64 if (!flag) break; 65 } 66 } 67 if (!flag) return false; 68 //删除当前目录 69 if (dirFile.delete()) { 70 return true; 71 } else { 72 return false; 73 } 74 } 75 76 /***************删除结束******************/