From aac2af64a1108c5ca1d5ceefe674a648ee7e59c7 Mon Sep 17 00:00:00 2001 From: WU Liang Date: Thu, 16 Mar 2023 11:25:54 +0800 Subject: [PATCH] StatFs should catch IllegalArgumentException in case the specified path is not accessible especially for external storage like TF/SD cards. Otherwise it would crash the process. --- .../java/com/blankj/utilcode/util/FileUtils.java | 16 ++++++++++++++-- .../com/blankj/utilcode/util/SDCardUtils.java | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/FileUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/FileUtils.java index 1acca1e050..5cf0ca1be0 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/FileUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/FileUtils.java @@ -1412,7 +1412,13 @@ public static void notifySystemToScan(final File file) { */ public static long getFsTotalSize(String anyPathInFs) { if (TextUtils.isEmpty(anyPathInFs)) return 0; - StatFs statFs = new StatFs(anyPathInFs); + StatFs statFs; + try { + statFs = new StatFs(anyPathInFs); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return 0; + } long blockSize; long totalSize; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { @@ -1433,7 +1439,13 @@ public static long getFsTotalSize(String anyPathInFs) { */ public static long getFsAvailableSize(final String anyPathInFs) { if (TextUtils.isEmpty(anyPathInFs)) return 0; - StatFs statFs = new StatFs(anyPathInFs); + StatFs statFs; + try { + statFs = new StatFs(anyPathInFs); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return 0; + } long blockSize; long availableSize; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/SDCardUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/SDCardUtils.java index 10952e779d..c480da1aa2 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/SDCardUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/SDCardUtils.java @@ -73,6 +73,8 @@ public static List getSDCardInfo() { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); } } else { try { @@ -101,6 +103,8 @@ public static List getSDCardInfo() { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); } } return paths;