Member 12598117 Ответов: 1

Обновление zip файла на основе другого zip файла C#


Итак, у меня есть zip-файл в каталоге. Этот zip-файл содержит различные типы файлов. Когда пользователь нажимает на кнопку в моем приложении WPF, zip-файл должен быть обновлен.

Он должен проверить файлы из другого zip-файла в другом каталоге. Если файл не существует в первом zip-файле, он должен скопировать этот файл из другого zip-файла в новый zip-файл.

для этого я использовал ионный zip-метод.

До сих пор я просто использовал файл.copy overwrite = true code. Но когда zip-файл составляет 1 Гб+, это занимает очень много времени, потому что он просто заменил zip-файл.

кто-нибудь знает, как я могу решить эту проблему?

Привет Томас

Что я уже пробовал:

это код, который я получил до сих пор:

частная пустота getlocaldata()
{

строка admindata = @ " \\networklocation\test.zip";
строка localPath = @"C:\finaldata\test.zip";

Файл.Copy (admindata, localPath, true);

}

BillWoodruff

Ключевой вопрос заключается в том, имеете ли вы полный контроль над файлами, находящимися в "базовой" папке, из которой вы обновляете "другое". Если вы всегда точно знаете, какие файлы находятся в базовой папке и их содержимое, то вы автоматически знаете, что нужно обновить. Но если вы не знаете, и, возможно, вам придется иметь дело с заархивированными архивами с повторяющимися именами файлов, то да, вам придется распаковать архивы и использовать какую-то форму сравнения "diff", чтобы оценить, что нужно обновить.

Поэтому, пожалуйста, уточните свой первоначальный пост.

1 Ответов

Рейтинг:
1

Sergey Alexandrovich Kryukov

В принципе, это просто означает повторную упаковку файла с нуля. Вы распаковываете оба файла, решаете, что должно войти в целевой ZIP-файл в соответствии с сформулированными вами критериями, создаете новый ZIP-файл с нуля. Возможно, в конце концов вы захотите переименовать этот результирующий файл в свой старый файл, фактически потеряв свой старый файл, который вам больше не нужен.

—СА