From 3298a0438e2242e6ecfefcb412c39a542e04530c Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 12 Nov 2009 17:15:54 -0800 Subject: [PATCH] SDK Manager: fix, create temp folder before download SDK BUG 2258237 Change-Id: I361fb688558539e20af50cd0a1d805ddf4ea4828 --- .../sdklib/internal/repository/Archive.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Archive.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Archive.java index e314bbe0e..040668cc7 100755 --- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Archive.java +++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Archive.java @@ -452,7 +452,17 @@ public class Archive implements IDescription { // temp folder (in the SDK base folder) and use the archive name for the // download. This allows us to reuse or continue downloads. - File tmpFile = new File(getTempFolder(osSdkRoot), base); + File tmpFolder = getTempFolder(osSdkRoot); + if (!tmpFolder.isDirectory()) { + if (tmpFolder.isFile()) { + deleteFileOrFolder(tmpFolder); + } + if (!tmpFolder.mkdirs()) { + monitor.setResult("Failed to create directory %1$s", tmpFolder.getPath()); + return null; + } + } + File tmpFile = new File(tmpFolder, base); // if the file exists, check if its checksum & size. Use it if complete if (tmpFile.exists()) { @@ -960,6 +970,9 @@ public class Archive implements IDescription { File baseTempFolder = getTempFolder(osBasePath); if (!baseTempFolder.isDirectory()) { + if (baseTempFolder.isFile()) { + deleteFileOrFolder(baseTempFolder); + } if (!baseTempFolder.mkdirs()) { return null; }