aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/files
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/files')
-rw-r--r--main/src/cgeo/geocaching/files/LocalStorage.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java
index 133f39a..3dcb200 100644
--- a/main/src/cgeo/geocaching/files/LocalStorage.java
+++ b/main/src/cgeo/geocaching/files/LocalStorage.java
@@ -275,15 +275,18 @@ public final class LocalStorage {
return false;
}
+
try {
try {
- final FileOutputStream fos = new FileOutputStream(targetFile);
+ final File tempFile = File.createTempFile("download", null, targetFile.getParentFile());
+ final FileOutputStream fos = new FileOutputStream(tempFile);
final boolean written = copy(inputStream, fos);
fos.close();
- if (!written) {
- FileUtils.deleteIgnoringFailure(targetFile);
+ if (written) {
+ return tempFile.renameTo(targetFile);
}
- return written;
+ FileUtils.deleteIgnoringFailure(tempFile);
+ return false;
} finally {
IOUtils.closeQuietly(inputStream);
}