.net core Compression使用ZipArchive创建压缩包出现Unexpected end of data错误

使用之前分享过的方式实现.net core压缩zip下载,遇到一个奇怪的问题,通过7zip检查压缩包,出现Unexpected end of data(文件末端错误)错误。通过一番查询解决了这个问题,但是没有想明白是什么原因。

之前分享过的实现代码:https://1023.org.cn/p/e0d7dd7580

.net core 压缩 zip 打包下载代码:

public FileResult Download()
{
    var ms = new MemoryStream();
    var zip = new ZipArchive(ms, ZipArchiveMode.Create);
    var entry = zip.CreateEntry("Readme.txt");  // 压缩包内文件名
    using var entryStream = entry.Open();
    using var fs = new FileStream(@"C:\测试.txt", FileMode.Open); // 要压缩的文件路径,也可用内存流代替
    fs.CopyTo(entryStream);
    entryStream.Close();
    zip.Dispose();
    var fileBytes = ms.ToArray();
    return File(fileBytes, MediaTypeNames.Application.Zip, "DownloadName");
}