Horizon
/Horizon/Database/SnapshotDatabase.cs |
@@ -7,6 +7,7 @@ |
using System.IO; |
using System.IO.Compression; |
using System.Runtime.CompilerServices; |
using System.Security.AccessControl; |
using System.Security.Cryptography; |
using System.Threading; |
using System.Threading.Tasks; |
@@ -1088,7 +1089,7 @@ |
{ |
case true: |
// Atomic |
var temp = Path.Combine(Path.GetDirectoryName(path), |
var temp = Path.Combine(dir, |
$"{Path.GetFileName(path)}.temp"); |
|
using (var readStream = sqlDataReader.GetStream(2)) |
@@ -1100,17 +1101,28 @@ |
using (var zipStream = |
new GZipStream(readStream, CompressionMode.Decompress)) |
{ |
zipStream.CopyTo(fileStream); |
await zipStream.CopyToAsync(fileStream); |
zipStream.Close(); |
} |
|
fileStream.Close(); |
} |
|
readStream.Close(); |
} |
|
try |
{ |
if (!File.Exists(path)) |
{ |
File.Create(path).Close(); |
} |
|
File.Replace(temp, path, null, true); |
} |
catch |
catch(Exception e1) |
{ |
var a = e1; |
try |
{ |
File.Delete(temp); |