ilovecomputer66 发表于 2023-5-13 08:44

不明白.net下的微软自带System.IO.Compression,以及最出名的第三方SharpZipLib不支持

本帖最后由 ilovecomputer66 于 2023-5-13 08:56 编辑

不明白.net下的微软自带System.IO.Compression,以及最出名的第三方SharpZipLib 的API,都无法很好的遍历出整个压缩文件内部结构

System.IO.Compression 仅仅能对ZipArchive.Entries,遍历出所有文件夹和文件。
SharpZipLib 的ZipFile也仅仅可以GetEnumerator,迭代所有文件夹和文件

迭代是没有任何层级关系的。 也就是说,我想像处理硬盘中的文件夹那样,通过DicectoryInfo、FileInfo 是不可能的。因为他们的API,压根没有分成 DirectoryEntryFileEntry,全都混为一体。这样就没法很清晰的遍历出各个文件夹的结构

我觉得作为通用压缩库,这样设计API很不科学。也就等于就压缩、解压 API给你用, 但你说动辄20多GB的压缩文件,难道为了遍历判断其中的层级结构,要解压出来处理么。。。 退一步讲,那么等于它没有相关API,然后自己要通过他仅仅提供的获取下面所有子文件夹和文件信息,自己整理一遍目录结构。自己搞个所谓的工具类,这也有点扯。就有点像一个json库,给你提供判断一个json是否合法的API,然后怎么解析,自己去写,哈哈

GMCN 发表于 2023-5-13 09:17

人生苦短,你用python

ilovecomputer66 发表于 2023-5-13 09:43

GMCN 发表于 2023-5-13 09:17
人生苦短,你用python

10倍效率差。另外,你能举个你用的py库,API上面说的设计的很好么?提供个github,我看下你说的库的功能吧

shandian281 发表于 2023-5-13 10:29

不明觉厉。{:301_988:}

jidesheng6 发表于 2023-5-13 10:41

试试看DoNetZip?

ilovecomputer66 发表于 2023-5-13 11:03

jidesheng6 发表于 2023-5-13 10:41
试试看DoNetZip?

一样的。而且一开始不试,因为人家那三个都是300万+的下载,它就可怜的几十万

小白GRE 发表于 2023-5-13 12:22

有没有一种可能是,因为需要通用,所以简单实在,直接

zbb2012 发表于 2023-5-13 14:35

ilovecomputer66 发表于 2023-5-13 14:36

zbb2012 发表于 2023-5-13 14:35
文件和文件夹我是单独遍历的。

他都没对文件夹封装任何获取下属子文件夹的方法

ilovecomputer66 发表于 2023-5-13 14:37

小白GRE 发表于 2023-5-13 12:22
有没有一种可能是,因为需要通用,所以简单实在,直接

嗯嗯,一本正经的胡说八道
页: [1] 2
查看完整版本: 不明白.net下的微软自带System.IO.Compression,以及最出名的第三方SharpZipLib不支持