diff options
author | Jeff Sharkey <jsharkey@android.com> | 2014-01-17 19:26:26 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-01-17 19:26:26 +0000 |
commit | f9e455a61cf29e515adb4e3c56e8e9269bc868f9 (patch) | |
tree | f3131043f03af7ca6f1e54950f6f9f4e234ebc52 | |
parent | 5a6b8f28c2cd2a78798b51b902599a79ffe2e997 (diff) | |
parent | 34d915e1dccf3d65e5a7c7f3a2273047ba8e51e8 (diff) | |
download | android_packages_providers_DownloadProvider-f9e455a61cf29e515adb4e3c56e8e9269bc868f9.tar.gz android_packages_providers_DownloadProvider-f9e455a61cf29e515adb4e3c56e8e9269bc868f9.tar.bz2 android_packages_providers_DownloadProvider-f9e455a61cf29e515adb4e3c56e8e9269bc868f9.zip |
am 34d915e1: am 18794718: am c5d43a1f: Merge "Creates parent directories before creates file"
* commit '34d915e1dccf3d65e5a7c7f3a2273047ba8e51e8':
Creates parent directories before creates file
-rw-r--r-- | src/com/android/providers/downloads/Helpers.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java index 013faf27..3562dac7 100644 --- a/src/com/android/providers/downloads/Helpers.java +++ b/src/com/android/providers/downloads/Helpers.java @@ -141,7 +141,15 @@ public class Helpers { // Claim this filename inside lock to prevent other threads from // clobbering us. We're not paranoid enough to use O_EXCL. try { - new File(path).createNewFile(); + File file = new File(path); + File parent = file.getParentFile(); + + // Make sure the parent directories exists before generates new file + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + + file.createNewFile(); } catch (IOException e) { throw new StopRequestException(Downloads.Impl.STATUS_FILE_ERROR, "Failed to create target file " + path, e); |