首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不可查找的输入流上不可能使用PKZIP加密。

在不可查找的输入流上不可能使用PKZIP加密。
EN

Stack Overflow用户
提问于 2012-05-15 09:41:11
回答 2查看 803关注 0票数 0

我用DotNetZip。

我搞错了

不可能在不可查找的输入流上使用PKZIP加密。

做什么?

代码语言:javascript
复制
var outputStream = new MemoryStream();
using (var zip = new ZipFile())
{
    zip.Password = "123456!";
    var outputStreamFile = new MemoryStream();
    var userId = m_userRepository.GetuserByLogin(this.User.Identity.Name).UserId;

    using (var streamWriter = new StreamWriter(outputStreamFile))
    {
        streamWriter.WriteLine(m_kamikaze2Repository.GetGameById(gameId, userId).Result);

    }
    zip.AddEntry("result_" + gameId, outputStreamFile);
    zip.Save(outputStream);//error

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 09:55:15

问题是,当您将outpuStreamFile添加到ZipFile时,它是关闭的。StreamWriter.Dispose将释放流,所以只需移动using语句,以确保在调用zip.SaveoutputStreamFile是可用的。

另外,在将outputStreamFile添加到ZipFile之前,您需要将其倒带。

代码语言:javascript
复制
using (var outputStreamFile = new MemoryStream()) {
  var userId = m_userRepository.GetuserByLogin(this.User.Identity.Name).UserId;
  var streamWriter = new StreamWriter(outputStreamFile);
  streamWriter.WriteLine(m_kamikaze2Repository.GetGameById(gameId, userId).Result);
  outputStreamFile.Seek(0, SeekOrigin.Begin);
  zip.AddEntry("result_" + gameId, outputStreamFile);     
  zip.Save(outputStream);
}
票数 5
EN

Stack Overflow用户

发布于 2012-05-15 10:18:40

就像这样:

代码语言:javascript
复制
using (var outputStream = new MemoryStream())
using (var zip = new ZipFile())
{
    zip.Password = "123456!";

    zip.AddEntry("result_" + gameId, "Some content");
    zip.Save(outputStream);

    byte[] zipFile = outputStream.ToArray();
    // TODO: do something with the zip
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10598056

复制
相关文章

相似问题

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