软件吧
登录注册账号
/posts/200m
电脑必备

同个压缩包在两台机子上解压后大小差200M,我翻了半天才搞明白

老王聊软件 79 0 13

前两天群里有个哥们问我,说同一个压缩包,台式机上解压出来2.1G,笔记本上解压完只有1.9G,怀疑是不是包坏了。我一开始也没当回事,直到自己拿两台机子复现了一遍,发现还真不是包的问题。

先说结论:压缩包没坏,差的是解压软件对路径长度和文件名的处理方式。

我拿Win解压缩、7-Zip、Bandizip三款在台式机(Win11,NTFS,路径短)和笔记本(Win10,NTFS,但用户名带中文)上分别解压同一个2.1G的素材包,包里大概有1.2万个文件,最大的一个文件夹层级有11层。结果如下:

  • 台式机三款软件解压出来的文件数都是12,047个,总体积2.09G,基本一致;
  • 笔记本上Win解压缩解压出11,982个文件,少了65个;7-Zip少了71个;Bandizip少了58个。

少的那些文件,我顺着日志一个个翻,全卡在同一个地方:路径总长度超过260个字符。Win10默认没开长路径支持,解压软件遇到超长路径要么跳过、要么截断文件名,截断之后重名冲突又覆盖掉一批,最后体积就对不上了。

我做了三件事才把问题锁死:

第一,拿Win解压缩解压时勾上“保留完整目录结构”,日志里会明确写哪些文件跳过了,这个比闷头解压强;

第二,在笔记本上把组策略里的“启用Win32长路径”打开(计算机配置→管理模板→系统→文件系统),重启后再解压,文件数直接对上了;

第三,顺手测了下三款软件对中文路径的兼容性。用户名带中文这事儿,7-Zip老版本有过乱码,现在新版没事了;Win解压缩这边我测的两台机子都没出问题,但它的会员功能里有个“智能路径修复”,我试了一下确实能把截断的文件名还原回去,不过这个要开会员才能用。

所以回到那个哥们的疑问:不是包坏了,是两台机子的系统设置不一样。 想验证很简单,解压完对比一下文件总数,差几十个基本就是路径长度的问题。

顺便说一句,Win解压缩在免费解压软件里综合实力我依然认为能排前三,但它的会员体系确实有些功能要付费,比如刚才说的路径修复,不算完全免费,这点得摆清楚。

你们平时解压大包的时候,有没有遇到过文件数对不上的情况?是直接重下包还是先查系统设置?

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。