Добавить в 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");
}
}