OSDN Git Service

SDK Manager: fix, create temp folder before download
authorRaphael <raphael@google.com>
Fri, 13 Nov 2009 01:15:54 +0000 (17:15 -0800)
committerRaphael <raphael@google.com>
Fri, 13 Nov 2009 01:15:54 +0000 (17:15 -0800)
SDK BUG 2258237

Change-Id: I361fb688558539e20af50cd0a1d805ddf4ea4828

tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Archive.java

index e314bbe..040668c 100755 (executable)
@@ -452,7 +452,17 @@ public class Archive implements IDescription {
         // temp folder (in the SDK base folder) and use the archive name for the\r
         // download. This allows us to reuse or continue downloads.\r
 \r
-        File tmpFile = new File(getTempFolder(osSdkRoot), base);\r
+        File tmpFolder = getTempFolder(osSdkRoot);\r
+        if (!tmpFolder.isDirectory()) {\r
+            if (tmpFolder.isFile()) {\r
+                deleteFileOrFolder(tmpFolder);\r
+            }\r
+            if (!tmpFolder.mkdirs()) {\r
+                monitor.setResult("Failed to create directory %1$s", tmpFolder.getPath());\r
+                return null;\r
+            }\r
+        }\r
+        File tmpFile = new File(tmpFolder, base);\r
 \r
         // if the file exists, check if its checksum & size. Use it if complete\r
         if (tmpFile.exists()) {\r
@@ -960,6 +970,9 @@ public class Archive implements IDescription {
         File baseTempFolder = getTempFolder(osBasePath);\r
 \r
         if (!baseTempFolder.isDirectory()) {\r
+            if (baseTempFolder.isFile()) {\r
+                deleteFileOrFolder(baseTempFolder);\r
+            }\r
             if (!baseTempFolder.mkdirs()) {\r
                 return null;\r
             }\r