.net core 极简方式实现ZIP文件压缩,支持文件流压缩,无需第三方组件

简介.net 越来越好用了,常用的组件比较完善,也符合实用习惯,寥寥几行代码就能实现一个功能

之前写项目经常用第三方组件实现下载,例如 SharpZipLib、DotNetZip,当然这些组件依旧很强大,但是对于日常项目中应用,.net core 提供了非常简洁的实现方式。

下面用几行极简的代码,实现ZIP打包下载文件。代码在.net core 3.1验证通过,更高版本肯定兼容,低版本没有尝试。

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:\123.txt", FileMode.Open); // 要压缩的文件路径,也可用内存流代替
    fs.CopyTo(entryStream);
    entryStream.Close();
    ms.Seek(0, SeekOrigin.Begin);
    return new FileStreamResult(ms, "application/zip");
}

本站发布的文章受知识共享协议保护,转载、收录请标明出处。

评论


昵称:   邮箱:

Top
An error has occurred. This application may no longer respond until reloaded.Reload 🗙