解决方法
是的,可以使用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 举报,一经查实,本站将立刻删除。