diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-04-02 13:27:29 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-04-02 13:27:29 +0200 |
| commit | faf6620c75156667c0ae4b5aa5b2e50fea439598 (patch) | |
| tree | 80c46983757f500be791d743c1310b12d5022afb | |
| parent | cd2a50e1e859527b9e2f768a0a5cb87a6cd42e2b (diff) | |
| parent | d5fdf65e31d6ad77f116631efdf505170898df18 (diff) | |
| download | cgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.zip cgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.tar.gz cgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.tar.bz2 | |
Merge branch 'release' into upstream
| -rw-r--r-- | main/src/cgeo/geocaching/files/LocalStorage.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java index 626f6e6..01c090b 100644 --- a/main/src/cgeo/geocaching/files/LocalStorage.java +++ b/main/src/cgeo/geocaching/files/LocalStorage.java @@ -9,6 +9,7 @@ import ch.boye.httpclientandroidlib.Header; import ch.boye.httpclientandroidlib.HttpResponse; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import android.os.Environment; @@ -361,9 +362,13 @@ public final class LocalStorage { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } - public static boolean deleteDirectory(File path) { - if (path.exists()) { - for (final File file : path.listFiles()) { + public static boolean deleteDirectory(@NonNull final File dir) { + final File[] files = dir.listFiles(); + + // Although we are called on an existing directory, it might have been removed concurrently + // in the meantime, for example by the user or by another cleanup task. + if (files != null) { + for (final File file : files) { if (file.isDirectory()) { deleteDirectory(file); } else { @@ -372,7 +377,7 @@ public final class LocalStorage { } } - return FileUtils.delete(path); + return FileUtils.delete(dir); } /** |
