首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic Zip :从byte[]创建Zip文件

Ionic Zip :从byte[]创建Zip文件
EN

Stack Overflow用户
提问于 2012-03-25 05:07:29
回答 2查看 25.1K关注 0票数 8

Ionic zip允许我将现有文件添加到zip对象中,并创建一个zip文件。但考虑到我正在从创建的压缩文件中读取这些byte[]并通过服务器发送,我需要再次从该byte[]创建压缩文件以将其存储在服务器上。我该如何实现这一点?

我正在使用C#。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 06:34:40

如果我正确理解了您的问题,您是通过网络获得byte[]数据数组的,并且希望将该数据保存在压缩文件中?您可以从从您获得的ZipEntry创建的MemoryStream创建新的byte[] (如docs中所示):

代码语言:javascript
复制
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");
    }
}
票数 21
EN

Stack Overflow用户

发布于 2012-03-25 05:21:07

从你的问题中并不清楚你在做什么-但是如果你只是想避免保存到磁盘然后重新加载来获取数据,那就保存到MemoryStream

代码语言:javascript
复制
byte[] data;
using (MemoryStream ms = new MemoryStream())
{
    zipFile.Save(ms);
    data = ms.ToArray();
}
// Do whatever with data.

或者,使用MemoryStream.GetBuffer()避免制作另一个副本:

代码语言:javascript
复制
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"...
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9855633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档