Я пытаюсь обновить (добавить/изменить файлы) существующий JAR-файл, и этот код (используя библиотеку DotNetZip) приводит к тому, что архив «поврежден», я не могу открыть его с помощью WinRAR в качестве ZIP или JAR:Обновление файла JAR с помощью DotNetZip приводит к повреждению архива?
using (FileStream fs = new FileStream("/path/to/jar", FileMode.Open))
{
ZipFile zip = ZipFile.Read(fs);
fs.Seek(0, SeekOrigin.Begin);
zip.Save(fs);
}
Может ли кто-нибудь сказать мне, в чем разница между форматом ZIP и JAR, точно? Я был под впечатлением, что это просто формат ZIP с манифестом в качестве первой записи в файле, что, по-видимому, не так. Есть ли существующая библиотека (C#), которую я могу использовать для этого?
Я не уверен, выпустить это, но вы были правы. Я решил проблему в своем производственном коде, сохраняя ZipFile в MemoryStream, закрывая и обнуляя поток файлов ZipFile, обнуляя ZipFile, а затем записывая MemoryStream в конечный пункт назначения. Вы спасли день, я думал, что все мои часы работы были потрачены впустую, спасибо огромное! – Salis