19 lines
647 B
C#
19 lines
647 B
C#
using System.IO.Compression;
|
||
|
||
namespace Updater.Core;
|
||
|
||
/// <summary>ZIP-экстрактор с использованием System.IO.Compression.</summary>
|
||
public sealed class ZipExtractor : IExtractor
|
||
{
|
||
private readonly ILogger _log;
|
||
public ZipExtractor(ILogger log) => _log = log;
|
||
|
||
public void Extract(string archivePath, string targetDir)
|
||
{
|
||
_log.Info($"Extracting '{archivePath}' to '{targetDir}'...");
|
||
if (Directory.Exists(targetDir)) Directory.Delete(targetDir, true);
|
||
Directory.CreateDirectory(targetDir);
|
||
ZipFile.ExtractToDirectory(archivePath, targetDir, overwriteFiles: true);
|
||
}
|
||
}
|