小编Luc*_*ass的帖子

如何在内存中创建一个zip文件,从文件字节开始?

我尝试使用c#在内存中创建一个zip文件,但结果是一个zip文件,里面有损坏的文件.所有zip文件都在数据库中.我存储字节.文件是PDF.我的代码如下

//[extract bytes and file name for every file]

using (var zipArchiveMemoryStream = new MemoryStream())
{
    using (var zipArchive = new ZipArchive(zipArchiveMemoryStream,
                                           ZipArchiveMode.Create, true))
    {
        foreach (var file in fileData)
        {
            var zipEntry = zipArchive.CreateEntry(file.FileName);
            using (var entryStream = zipEntry.Open())
            {
                using (var tmpMemory = new MemoryStream(file.Bytes))
                {
                    tmpMemory.CopyTo(entryStream);
                };

            }
        }
    }
    zipArchiveMemoryStream.Position = 0;
    result = zipArchiveMemoryStream.GetBuffer();

//[download zip file]
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的支持

TONIGNO解决方案: 问题是我使用GetBuffer(); 而是ToArray();

using (var zipArchiveMemoryStream = new MemoryStream())
        {
            using (var zipArchive = new ZipArchive(zipArchiveMemoryStream, ZipArchiveMode.Create, …
Run Code Online (Sandbox Code Playgroud)

c# compression zip

5
推荐指数
1
解决办法
4464
查看次数

标签 统计

c# ×1

compression ×1

zip ×1