Code Bye

SharpZipLib 检查并选择一个ZIP文件的内容

我正在一个项目中使用 SharpZipLib ,有个疑问:是否能够查看zip 文件,如果其中一个文件数据在我查找的范围内被修改,然后将这个文件提取出来复制到一个新的目录?能否实现这种可能?//codebyecom 编译

是的,可以使用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];
        //用MemoryStream 在内存中分析文件。
        using (MemoryStream ms = new MemoryStream())
        {
          StreamUtils.Copy(s, ms, buf);
        }
        // 取消下面代码的注释可以在磁盘中存储文件。
 /*using (FileStream fs = File.Create(@"c:\temp\uncompress_" + ze.Name))
        {
          StreamUtils.Copy(s, fs, buf);
        }*/
      }            
    }
  }
} 

在上面的示例中,我使用一个MemoryStream在内存中存储ZipEntry(用于进一步分析)。你也可以存储ZipEntry磁盘上(如果它符合特定的标准)。
希望,这可以帮助。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SharpZipLib 检查并选择一个ZIP文件的内容