简体   繁体   English

C#ZipArchive:未创建zip文件

[英]C# ZipArchive: zip file not created

I tried below code to first convert my bytes to compressed bytes and try to create a zip file, but file is not generated. 我尝试使用以下代码首先将bytes转换为compressed bytes然后尝试创建一个zip文件,但未生成文件。 Could someone please suggest! 有人可以建议!

byte[] result;
var X = 86251;
byte[] compressedBytes;

using (FileStream SourceStream = File.Open(filename, FileMode.Open))
{
    SourceStream.Seek(0, SeekOrigin.Begin);

    result = new byte[X];

    await SourceStream.ReadAsync(result, 0, X);
}

string fileName = "Export_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".zip";
using (var outStream = new MemoryStream())
{
    using (var archive = new ZipArchive(outStream, ZipArchiveMode.Create, true))
    {
        var fileInArchive = archive.CreateEntry(fileName, CompressionLevel.Optimal);
        using (var entryStream = fileInArchive.Open())
        using (var fileToCompressStream = new MemoryStream(result))
        {
            fileToCompressStream.CopyTo(entryStream);
        }
    }
    compressedBytes = outStream.ToArray();
}

You're not creating an actual file anywhere. 您没有在任何地方创建实际文件。 You're just writing to a memory stream. 您只是在写入内存流。 Change it to write to a file. 更改它以写入文件。

using (var outStream = new File.Create(fileName))
{
    using (var archive = new ZipArchive(outStream, ZipArchiveMode.Create, true))
    {
        var fileInArchive = archive.CreateEntry(filename, CompressionLevel.Optimal);
        using (var entryStream = fileInArchive.Open())
        using (var fileToCompressStream = new MemoryStream(result))
        {
            fileToCompressStream.CopyTo(entryStream);
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM