C# Zip возвращает неверный файл [дубликат]C#

Место общения программистов C#
Ответить
Гость
 C# Zip возвращает неверный файл [дубликат]

Сообщение Гость »


У меня есть следующий код для преобразования имен файлов из сообщения формы в zip-архив и возврата их.
Когда я запускаю его, я получаю файл .zip, но он недействителен. Кто-нибудь видит мою ошибку?

Код: Выделить всё

public IActionResult OnPost()
{
Username = HttpContext.Session.GetString("Username");
string[] FilePaths = Request.Form["FilePath"];
Dictionary fileList = new Dictionary();
byte[] retVal = null;

foreach (var path in FilePaths)
{
string fullPath = Path.Combine(@"C:\Downloads\", Username, path);
byte[] bytes = System.IO.File.ReadAllBytes(fullPath);
fileList.Add(path, bytes);
}

using (MemoryStream zipStream = new MemoryStream())
{
using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create, true))
{
foreach (var file in fileList)
{
var demoFile = archive.CreateEntry(file.Key);

using (var entryStream = demoFile.Open())
using (var b = new BinaryWriter(entryStream))
{
b.Write(file.Value);
b.Close();
}
}

zipStream.Position = 0;

}
retVal = zipStream.ToArray();
}
return File(retVal, MediaTypeNames.Application.Zip, "test.zip");
}


Источник: https://stackoverflow.com/questions/781 ... valid-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»