Мое решение состояло в том, чтобы установить для свойства NameTransform
объекта ZipFile
значение ZipNameTransform
, а для TrimPrefix
- каталог файла. Это приводит к удалению части каталога имен записей, которые являются полными путями к файлам.
public static void ZipFolderContents(string folderPath, string zipFilePath)
{
string[] files = Directory.GetFiles(folderPath);
using (ZipFile zipFile = ZipFile.Create(zipFilePath))
{
zipFile.NameTransform = new ZipNameTransform(folderPath);
foreach (string file in files)
{
zipFile.BeginUpdate();
zipFile.Add(file);
zipFile.CommitUpdate();
}
}
}
Что круто, так это свойство NameTransform типа INameTransform
, позволяющее настраивать преобразования имен.