Добавить в Zip архив файлы из разных путей расположения С#

Требуется добавить в Zip архив средствами DotNet несколько файлов расположенных в разных каталогах, просьба DotNetZip using Ionic.Zip; не предлагать, так как эта библиотека не работает с именами такого типа:"Default-Москва.ru.json".

Для одного файла отлично работает сл. код:

    public static void Compress(string source, string compressed)
    {
        using (FileStream sourceStream = new FileStream(source, FileMode.OpenOrCreate))
        {
            using (FileStream targetStream = File.Create(compressed))
            {
                using (GZipStream gZipStream = new GZipStream(targetStream, CompressionMode.Compress))
                {
                    sourceStream.CopyTo(gZipStream); 
                }
            }
        }
    }

Ответы (1 шт):

Автор решения: Digital Core

Банальное решение задачи ZipArchive

SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "Сохранение Zip";
saveFileDialog.Filter = "Zip files (*.zip) |*.zip";
saveFileDialog.FileName = fileName + ".zip";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
    using (var fileStream = new FileStream(saveFileDialog.FileName, FileMode.OpenOrCreate))
    using (var archive = new ZipArchive(fileStream, ZipArchiveMode.Create))
    {
        archive.CreateEntryFromFile(file1, "project.json");
        archive.CreateEntryFromFile(file2, "avatar.jpg");
        archive.CreateEntryFromFile(file3, "user.txt");
        archive.CreateEntryFromFile(file4, "data.log");
    }
}
→ Ссылка