From 33cd67bd70e8cd462f5a287d1cdd50f3683efe00 Mon Sep 17 00:00:00 2001 From: seven332 Date: Sun, 16 Nov 2014 18:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E4=BB=B6=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/hippo/ehviewer/network/HttpHelper.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/com/hippo/ehviewer/network/HttpHelper.java b/src/com/hippo/ehviewer/network/HttpHelper.java index e7ca2d65e..bd36a97fd 100644 --- a/src/com/hippo/ehviewer/network/HttpHelper.java +++ b/src/com/hippo/ehviewer/network/HttpHelper.java @@ -749,6 +749,7 @@ public class HttpHelper { private final File mDir; private final String mFileName; private File mFile; + private File mTempFile; private final boolean mIsProxy; private final DownloadControlor mControlor; private final OnDownloadListener mListener; @@ -832,24 +833,24 @@ public class HttpHelper { // Make sure parent exist mDir.mkdirs(); - mFile = new File(mDir, mFileName + DOWNLOAD_EXTENSION); + mFile = new File(mDir, mFileName); + mTempFile = new File(mDir, mFileName + DOWNLOAD_EXTENSION); // Transfer - transferData(conn.getInputStream(), new FileOutputStream(mFile)); + transferData(conn.getInputStream(), new FileOutputStream(mTempFile)); + // Get ok, rename + // TODO what if rename fail + mTempFile.renameTo(mFile); // Callback if (mListener != null) mListener.onDownloadOver(DOWNLOAD_OK_CODE, null); - // Get ok, rename - mFile.renameTo(new File(mDir, mFileName)); - // renameTo seem to be not blocked, so wait half a second - try { - Thread.sleep(500); - } catch (Throwable e){} return DOWNLOAD_OK_STR; } @Override public void onGetException(Exception e) { // Delete unfinished file + if (mTempFile != null) + mTempFile.delete(); if (mFile != null) mFile.delete(); // Callback