微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – SharpZipLib检查并选择ZIP文件的内容

我在项目中使用SharpZipLib,我想知道是否可以使用它来查看zip文件,如果其中一个文件中有一个数据在我正在搜索的范围内修改,那么选择该文件并复制它到一个新目录?有人知道这有可能吗?

解决方法

是的,可以使用SharpZipLib枚举zip文件文件.您还可以从zip文件中选择文件,并将这些文件复制到磁盘上的目录中.

这是一个小例子:

using (var fs = new FileStream(@"c:\temp\test.zip",FileMode.Open,FileAccess.Read))
{
  using (var zf = new ZipFile(fs))
  {
    foreach (ZipEntry ze in zf)
    {
      if (ze.IsDirectory)
        continue;

      Console.Out.WriteLine(ze.Name);            

      using (Stream s = zf.GetInputStream(ze))
      {
        byte[] buf = new byte[4096];
        // Analyze file in memory using MemoryStream.
        using (MemoryStream ms = new MemoryStream())
        {
          StreamUtils.copy(s,ms,buf);
        }
        // Uncomment the following lines to store the file
        // on disk.
        /*using (FileStream fs = File.Create(@"c:\temp\uncompress_" + ze.Name))
        {
          StreamUtils.copy(s,fs,buf);
        }*/
      }            
    }
  }
}

在上面的示例中,我使用MemoryStream将ZipEntry存储在内存中(供进一步分析).您还可以在磁盘上存储ZipEntry(如果它符合某些条件).

希望这可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐