求助,如何实现不解压,直接从压缩包提取文件

熏先森 2014-11-23 10:45:55
服务器上有N个4GB大小的压缩包,想不通过解压,获取压缩包中指定的文件。因为如果解压之后获取,压缩包太大,效率应该不太好,所以想问问大家如何不解压压缩包来获取其中的指定文件呢?谢谢啦。
P.S. 就是怎么实现Windows里面双击一个压缩包后,直接把需要的文件拖到指定位置,这么一个方法。
...全文
1794 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
熏先森 2014-12-02
  • 打赏
  • 举报
回复
Zip的类库虽然好用,但似乎Zip不支持4G以上的压缩包。请问针对rar有什么好用的类库可以实现这个功能吗?谢谢
手抓宝 2014-12-02
  • 打赏
  • 举报
回复
引用 楼主 matthewaaaaaa 的回复:
P.S. 就是怎么实现Windows里面双击一个压缩包后,直接把需要的文件拖到指定位置,这么一个方法。
windows直接拖拽文件,也是一个解压的过程,他会把压缩包解压到系统临时文件夹里,然后复制到你拖拽的地方。并不是没有解压。
winnowc 2014-12-02
  • 打赏
  • 举报
回复
.net上我能找到的托管代码支持解压rar的库只有https://github.com/adamhathcock/sharpcompress,不过我没用过,不知道支持的怎么样。其实大部分地方都是用rarlab官方的unrar.dll,不过我觉得这还不如直接调用7z
winnowc 2014-11-23
  • 打赏
  • 举报
回复
你要解压什么格式的?zip的如果.net 4.5直接可以用ZipArchive类,4.0及以下可以用DotNetZip、SharpZipLib之类的。 其它格式的当然也有,不过想要支持所有格式那不如直接调用7z的命令行。
熏先森 2014-11-23
  • 打赏
  • 举报
回复
引用 1 楼 github_22161131 的回复:
像7z、rar、tar.gz这些格式如果开启了固实压缩(Solid compression),那么它会把所有文件当作一个大数据块一起处理,这样压缩比高,但是就需要解压所有文件才能提取。如果是zip,它不支持固实压缩,或者其它格式没有开启固实压缩,每个文件单独压,就可以单独提取。 所以只要压缩包不是固实的,你用解压工具或者库提取需要文件的时候,都不会去解压其它文件。如果是固实的,那就不可能了。
请问有什么类库或者算法可以提取非固实压缩方式压缩包中的文件吗?希望能推荐一下类库或者代码,谢谢
winnowc 2014-11-23
  • 打赏
  • 举报
回复
像7z、rar、tar.gz这些格式如果开启了固实压缩(Solid compression),那么它会把所有文件当作一个大数据块一起处理,这样压缩比高,但是就需要解压所有文件才能提取。如果是zip,它不支持固实压缩,或者其它格式没有开启固实压缩,每个文件单独压,就可以单独提取。 所以只要压缩包不是固实的,你用解压工具或者库提取需要文件的时候,都不会去解压其它文件。如果是固实的,那就不可能了。

111,080

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧