Распаковка архива с заменой файлов - C# (233733)
Формулировка задачи:
Как сделать распаковку архива с заменой файлов?
using (ZipFile zip = ZipFile.Read("content.zip"))
{
zip.ExtractProgress +=
new EventHandler<ExtractProgressEventArgs>(zip_ExtractProgress);
zip.ExtractAll("", ExtractExistingFileAction.OverwriteSilently);
}Решение задачи: «Распаковка архива с заменой файлов»
textual
Листинг программы
public static class ZipArchiveExtensions
{
public static void ExtractToDirectory(this ZipArchive archive, string destinationDirectoryName, bool overwrite)
{
if (!overwrite)
{
archive.ExtractToDirectory(destinationDirectoryName);
return;
}
foreach (ZipArchiveEntry file in archive.Entries)
{
string completeFileName = Path.Combine(destinationDirectoryName, file.FullName);
if (file.Name == "")
{// Assuming Empty for Directory
Directory.CreateDirectory(Path.GetDirectoryName(completeFileName));
continue;
}
file.ExtractToFile(completeFileName, true);
}
}
}