Я пытаюсь создать zip-файл из закодированной строки base64, но я застрял при получении файлов из строки.
Мне удалось создать из него zip-файл, но я не вижу файла, который должен быть в нем.
Пока мой код:
public static void Main(string[] args)
{
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", false, true)
.Build();
var fileName = args[0];
var path = $"{config["zipPath"]}\\{fileName}";
byte[] zipBytes = Convert.FromBase64String(args[1]);
using(var memoryStream = new MemoryStream(zipBytes))
{
// without this I can't open my zip file
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
}
using (var fileStream = new FileStream(path, FileMode.Create))
{
memoryStream.Seek(0, SeekOrigin.Begin);
memoryStream.CopyTo(fileStream);
}
}
}
Разъяснение
Строка, которую я декодирую, является зашифрованным zip-файлом. Я получил строку Base64, и мне нужно декодировать ее и создать ZIP-файл, который совпадает с оригиналом, включая файлы, которые были заархивированы.
Дальнейшее уточнение
Я получаю zip-файл от третьего лица. Однако я не получаю его в виде zip-файла, я получаю его в виде закодированной строки Base64. Байты этого zip кодируются в строку Base64.
Что мне нужно сделать, так это воссоздать исходный zip-файл, используя полученную строку Base64.