From b3024a934b388050c69c944dd6c03750b6572c9b Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 7 May 2025 22:15:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xypower/common/FilesUtils.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/common/src/main/java/com/xypower/common/FilesUtils.java b/common/src/main/java/com/xypower/common/FilesUtils.java index 8320b8d3..cca56fa6 100644 --- a/common/src/main/java/com/xypower/common/FilesUtils.java +++ b/common/src/main/java/com/xypower/common/FilesUtils.java @@ -251,4 +251,73 @@ public class FilesUtils { public static byte[] readAllBytes(String file) { return readAllBytes(new File(file)); } + + public static boolean delete(File file) { + if (!file.exists()) { + return false; + } else { + if (file.isFile()) + return deleteSingleFile(file); + else + return deleteDirectory(file.getAbsolutePath()); + } + } + + private static boolean deleteSingleFile(File file) { + // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 + if (file.exists() && file.isFile()) { + if (file.delete()) { + // Log.e("--Method--", "Copy_Delete.deleteSingleFile: 删除单个文件" + filePath$Name + "成功!"); + return true; + } else { + return false; + } + } else { + return false; + } + } + + /** 删除目录及目录下的文件 + * @param filePath 要删除的目录的文件路径 + * @return 目录删除成功返回true,否则返回false + */ + private static boolean deleteDirectory(String filePath) { + // 如果dir不以文件分隔符结尾,自动添加文件分隔符 + if (!filePath.endsWith(File.separator)) + filePath = filePath + File.separator; + File dirFile = new File(filePath); + // 如果dir对应的文件不存在,或者不是一个目录,则退出 + if ((!dirFile.exists()) || (!dirFile.isDirectory())) { + return false; + } + boolean flag = true; + // 删除文件夹中的所有文件包括子目录 + File[] files = dirFile.listFiles(); + for (File file : files) { + // 删除子文件 + if (file.isFile()) { + flag = deleteSingleFile(file); + if (!flag) + break; + } + // 删除子目录 + else if (file.isDirectory()) { + flag = deleteDirectory(file + .getAbsolutePath()); + if (!flag) + break; + } + } + if (!flag) { + return false; + } + // 删除当前目录 + if (dirFile.delete()) { + // Log.e("--Method--", "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!"); + return true; + } else { + return false; + } + } + }