Ionic Zip : Zip file creation from byte[]

后端 未结 2 1382
眼角桃花
眼角桃花 2021-02-15 15:59

Ionic zip allows me to add existing file to zip object and create a zip file. But considering that I am reading those byte[] from created zip file and sending over server, I nee

相关标签:
2条回答
  • 2021-02-15 16:21

    If I understand your question correctly, you get your byte[] data array over the network and want to save that data in a zip file? You can create a new ZipEntry from a MemoryStream which you create from the byte[] you got (as shown in the docs):

    byte[] data = MethodThatReceivesYourDataOverTheNet();
    using (MemoryStream stream = new MemoryStream(data))
    {
        using (ZipFile zip = new ZipFile())
        {
            zip.AddEntry("name_of_the_file_in_the_arhive.bin", "base", stream);
            zip.Save("example.zip");
        }
    }
    
    0 讨论(0)
  • 2021-02-15 16:31

    It's not really clear from your question what you're doing - but if you're just trying to avoid saving to disk and then reloading to get the data, just save to a MemoryStream:

    byte[] data;
    using (MemoryStream ms = new MemoryStream())
    {
        zipFile.Save(ms);
        data = ms.ToArray();
    }
    // Do whatever with data.
    

    Alternatively, use MemoryStream.GetBuffer() to avoid making another copy:

    byte[] buffer;
    int length;
    using (MemoryStream ms = new MemoryStream())
    {
        zipFile.Save(ms);
        buffer = ms.ToArray();
        length = ms.Length;
    }
    
    // Now use buffer, but only up to "length"...
    
    0 讨论(0)
提交回复
热议问题