Глядя на код SharpZipLib, есть класс в классе ZipFile, который, кажется, делает то, что вы хотите:
public void Add(IStaticDataSource dataSource, string entryName, CompressionMethod compressionMethod)
Вам просто нужно получить IStaticDataSource из файлаи создайте соответствующее entryName (которое не включает путь к каталогу), то есть найдите последний разделитель каталогов Path.DirectorySeparatorChar Field в file
строке и все, что после этого должно быть только вашим именем файла.
[РЕДАКТИРОВАТЬ] Уточнение: я первоначально предложил Add(string file, string entryName)
, но отредактировал в вышеописанном методе, когда увидел, что OP указывает метод сжатия в вызове.Но метод сжатия по умолчанию для новых записей zip - CompressionMethod.Deflated, поэтому использование метода Add(string file, string entryName)
должно дать тот же результат без необходимости получения IStaticDataSource.