Прежде всего, что я хочу сделать:
У меня есть список файлов, которые я хотел бы добавить в тот же архив. Структура папок с этими файлами должна быть включена в архив.
Проблема в том, что я не могу добавить файлы в существующий архив. Когда я использую 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();