Rework how package extraction works

maybe this might just fix things?
This commit is contained in:
pizzaboxer 2023-07-17 22:47:39 +01:00
parent 907a3c3517
commit 33aab4ff8a
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8

View File

@ -1218,8 +1218,8 @@ namespace Bloxstrap
App.Logger.WriteLine($"[Bootstrapper::ExtractPackage] Extracting {package.Name} to {packageFolder}..."); App.Logger.WriteLine($"[Bootstrapper::ExtractPackage] Extracting {package.Name} to {packageFolder}...");
using (ZipArchive archive = await Task.Run(() => ZipFile.OpenRead(packageLocation))) using ZipArchive archive = await Task.Run(() => ZipFile.OpenRead(packageLocation));
{
foreach (ZipArchiveEntry entry in archive.Entries) foreach (ZipArchiveEntry entry in archive.Entries)
{ {
if (_cancelFired) if (_cancelFired)
@ -1239,8 +1239,12 @@ namespace Bloxstrap
Directory.CreateDirectory(directory); Directory.CreateDirectory(directory);
await Task.Run(() => entry.ExtractToFile(extractPath, true)); using var fileStream = new FileStream(extractPath, FileMode.CreateNew, FileAccess.Write, FileShare.None, bufferSize: 0x1000, useAsync: true);
} using var dataStream = entry.Open();
await dataStream.CopyToAsync(fileStream);
File.SetLastWriteTime(extractPath, entry.LastWriteTime.DateTime);
} }
App.Logger.WriteLine($"[Bootstrapper::ExtractPackage] Finished extracting {package.Name}"); App.Logger.WriteLine($"[Bootstrapper::ExtractPackage] Finished extracting {package.Name}");