Как добавить файлы в архив с помощью SevenZipSharp - PullRequest
2 голосов
/ 11 августа 2011

Прежде всего, что я хочу сделать:

У меня есть список файлов, которые я хотел бы добавить в тот же архив. Структура папок с этими файлами должна быть включена в архив.

Проблема в том, что я не могу добавить файлы в существующий архив. Когда я использую CompressionMode.Create в архиве находится только фактический файл, когда я использую CompressionMode.Append, я получаю KeyNotFoundException, и в архиве ничего не меняется.

SevenZip.SevenZipCompressor szc = new SevenZip.SevenZipCompressor();
if (File.Exists(PathToArchive))
    szc.CompressionMode = SevenZip.CompressionMode.Append;
else
    szc.CompressionMode = SevenZip.CompressionMode.Create;

FileStream archive = new FileStream(Filename, FileMode.OpenOrCreate, FileAccess.ReadWrite);
try
{
    szc.DirectoryStructure = true;
    szc.EncryptHeaders = true;
    szc.DefaultItemName = filename; //if the full path given the folders are also created
    szc.CompressStream(filestream, archive, Password);
}
catch (Exception e) { }

archive.Close();

Ответы [ 2 ]

1 голос
/ 17 мая 2012

У меня нет проблем с добавлением файлов в существующий архив с SharpZipLib 0.64 (из Nuget) и 7z.dll 9.20 из sourceforge, но я использую CompressFiles () вместо CompressStream ().

0 голосов
/ 11 апреля 2012

Эта операция НЕ поддерживается 7-Zip даже при использовании его файлового менеджера. Я предлагаю вам просто удалить старый архив и воссоздать его с новыми файлами.

Windows 7 x64 - 7-Zip 9.20

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...