C# как добавить изображение, аудио, видео в zip-файл dotnetzip без исходного пути к файлу?
Я пишу приложение C# .NET WinForms, где мне нужно создать zip-файл (используя DotNetZip), состоящий из элементов следующих типов:
Система.Рисование.Изображение какое-то изображение
Microsoft.DirectX.Аудиовидеоплеер.Аудио someaudio
Microsoft.DirectX.Аудиовидеоплеер.Видео somevideo
Проблема: во всех примерах кода, которые я нашел, в которых изображение, аудио или видео файл преобразуется в массив байтов или строку Base64, элементы преобразуются с использованием исходных файловых путей файлов...
byte() MediaInBytes = File.ReadAllBytes(originalfilepath);
Поскольку результирующий zip-файл может быть открыт на другом компьютере, отличном от того, на котором он был создан, я не могу использовать исходный путь к каждому файлу изображения, аудио или видео, поскольку эти файлы изображения, аудио или видео могут не существовать на другом компьютере. Как только я добавляю изображение, аудио или видео файл, исходный путь к файлу больше не должен использоваться.
Так что у меня остается два варианта:
1. Найдите способ добавить someimage, someaudio и somevideo в zip-архив, созданный с помощью DotNetZip, без предварительного преобразования их в строку Base64 или байтовый массив.
2. Найдите способ записать значения someimage, someaudio и somevideo во временный файл, чтобы я мог добавить их оттуда. Помните, что для добавления элемента в zip-файл DotNetZip он должен исходить из пути к файлу:
Ionic.Zip.ZipEntry someEntry = zip.AddFile(filepath);
Любая помощь будет очень признательна.
Что я уже пробовал:
byte() MediaInBytes = File.ReadAllBytes(someimage);
byte() MediaInBytes = File.ReadAllBytes(someaudio);
byte() MediaInBytes = File.ReadAllBytes(somevideo);
Ionic.Zip.ZipEntry someEntry = zip.AddFile(filepath);