一个 4.2G 的素材包,让我把压缩软件彻底换了
去年帮一个做婚礼摄影的朋友传素材,一个文件夹 4.2 个 G,里面有二百多张原片和四段剪辑好的视频。微信直接拒收,QQ 传了一半断线,网盘那边提示单个文件不能超过 4G。我当时的第一反应是“那我拆成两个包不就行了”,但拆之前得先知道拆多大、怎么拆、对方收到以后能不能拼回去。
那天我用的是电脑预装的某款压缩软件,压缩界面里有个“分卷大小”的框,我填了 2G,压出来三个文件,名字分别是 xxx.part1.rar、xxx.part2.rar、xxx.part3.rar。发给对方以后,他在手机解压,只解出来一部分,剩下的提示“找不到分卷”。后来我才知道,分卷包必须所有分卷齐了才能解,单独解第一个也不行,而且在某些手机上解压工具对分卷的支持很差。
那次之后我把压缩软件换成了 7-Zip。理由很简单:免费、开源、没有广告弹窗、没有“免费试用 40 天”的到期提醒,而且解压格式支持得最全。这篇就把我用它处理大文件、加密包、损坏包的全部操作写下来。
先说清楚它的能力边界
7-Zip 能压缩的格式主要是 7z、zip、tar、gz、bz2、xz 这些,其中 7z 是它自家的格式,压缩率高、支持 AES-256 加密、支持加密文件名。它能解压的格式就多了,rar、iso、cab、msi、dmg、wim 基本都能拆开看。
但有一点必须知道:它能解压 rar,不能“制作” rar。rar 的压缩算法是另一家公司的,没有公开授权,所以任何免费软件都只能解不能压。如果你的场景必须是 rar,那只能去买那个软件;如果只是自己用,7z 格式比 rar 更划算。
另外,它不是那种“全能文件管理器”型的压缩软件,界面朴素得像 Windows 98 的文件夹窗口。很多人第一次打开会觉得简陋,但真正用起来你会发现,压缩软件本来就不需要花哨界面,你需要的是参数可控、出错提示清楚。
还有个小优势,7-Zip 的解压是流式的,遇到一个坏文件会告诉你哪个坏了,而不是整个包直接报废。这一点在处理别人发来的疑难包时特别重要,后面会具体讲。
下载与安装:三个容易踩的点
官网是 7-zip.org,界面同样朴素。首页上第一眼能看到的是最新稳定版,往下拉有历史版本和测试版。日常用稳定版就行,测试版偶尔会有界面上的小毛病。
第一个坑是架构。网页上有 32 位和 64 位两种安装包,名字里带 x64 的是 64 位。现在绝大多数电脑都该装 64 位,装错了虽然也能跑,但压缩大文件时速度会明显慢一截,因为 32 位进程用不了大内存。
第二个坑是安装包类型。有 .exe 和 .msi 两种,功能一样,.msi 更适合企业环境批量部署,个人用 .exe 就行。别去各种软件管家、下载站拿“优化版”“去广告版”,那些包经常被塞了别的东西,我见过一个所谓的精简版,装完之后右键菜单里多了三个购物网站的快捷方式。
第三个坑是安装时的关联设置。安装过程中可以选关联哪些格式,默认全勾。我的建议是 7z、zip、rar、tar、gz、iso 勾上,其他冷门格式不用勾,不然右键菜单会长得吓人。装完也可以在工具菜单的选项里改,找到系统那一页,格式列表一勾一取消就完事。
压缩参数:别只会点“确定”
右键一个文件夹,选“添加到压缩包”,会弹出参数窗口。窗口不大,但里面每一项都会影响最后的体积和耗时。
压缩格式先选。日常发给别人,选 zip 兼容性最好,苹果手机、老版本的解压软件都认;自己备份或者要加密,选 7z,体积通常能再小一成到两成。差距在大文件上很明显,我压一个 3.8G 的视频素材包,zip 出来 3.7G,7z 出来 3.5G,因为视频本身已经压过了,压缩软件能挤出来的空间有限。
压缩等级有五档:仅存储、最快、快速、标准、极限。这里有个误区,很多人以为等级越高越好,其实对已经压过的文件(视频、图片、音乐、pdf)来说,极限和标准出来的体积差不多,但耗时能差三四倍。我自己的规则是:文档、代码、日志用极限;视频图片用仅存储或者快速,反正压不动,不如省时间。
字典大小和单词大小这两个参数,普通用户不用动。它们主要影响压缩率和内存占用,设太大在低配机器上会卡,设太小压缩率上不去。默认值对绝大多数场景够用。
固实压缩这个选项值得说一下。勾上之后,压缩软件会把多个小文件当成一整块来压,体积能再小一点,但代价是解压时必须从头解,想单独拿其中一个文件会很慢。备份一堆小文件的时候勾上很划算,如果是给别人发一堆零散文件、对方可能只要其中一个,就别勾。
线程数默认是自动,会吃满你的 CPU。压大包的时候风扇狂转是正常的,别以为是中毒了。如果一边压缩一边还要干活,把线程调低一点,机器会舒服很多。
分卷压缩:拆得对,才拼得回来
回到开头那个 4.2G 的素材包。分卷压缩的入口就在参数窗口左下角,一个叫“分卷大小”的输入框,单位可以是字节、KB、MB、GB。
填多少合适,取决于你要传到哪。网盘限制单文件 4G,那就填 3900m,别填 4g。原因很实在:文件系统算的是字节,4g 这个值加上文件头信息,实际可能刚好压线,网盘判定超限。留一点余量,省得传完才发现被拒。
如果是往 U 盘里拷,而 U 盘是 FAT32 格式,那单个文件的上限就是 4G,同样建议 3900m 以下。想确认 U 盘是什么格式,右键属性里能看到,写着 FAT32 就是有 4G 限制,写着 exFAT 或者 NTFS 就没这个问题。
分卷的命名规则要记牢:7z 格式的分卷是 名字.7z.001、名字.7z.002 这样递增;zip 格式是 名字.zip.001。有些软件生成的是 part1、part2,那是 rar 的命名方式,别混着用。
最关键的一条:所有分卷必须放在同一个目录里,解压的时候只需要右键第一个分卷(.001 那个),选提取,软件会自动按顺序找后面的。如果你只拿到 002 而没有 001,是解不了的。同理,中间少一个 003,解到那里会报错停下。
发送分卷包的时候,最好把分卷数量控制在几个以内,并且跟对方说清楚“所有文件放在一起,解压第一个”。我遇到过对方只存了第一个文件,然后问我为什么解压报错,沟通成本比省下的时间还高。
还有一点,zip 格式虽然也支持分卷,但兼容性明显不如 7z,尤其是手机上的解压 App,认 7z 分卷的情况反而更好。所以我分卷一律用 7z 格式。
加密:7z 格式才值得用
参数窗口右边有密码和确认密码两个框,填上就是加密。这里有个必须讲清楚的区别:7z 格式用的是 AES-256,这个强度到今天依然是可靠的;zip 格式在 7-Zip 里只能用老式的弱加密,理论上能被暴力破解,防护级别差很远。
所以只要涉及“这个包不能被别人打开”,格式一定选 7z。别用 zip 加密然后自我安慰,那层锁跟纸糊的差不多。
另一个选项是“加密文件名”,只有 7z 格式才有。勾上之后,别人拿到压缩包,连里面有哪些文件都看不到,打开只显示一堆看不懂的东西。不勾的话,文件名是明文可见的,别人虽然进不去,但能看到你包里有个叫“2026 年报价单”的文件。这个差别在某些场景下比密码本身还重要。
密码怎么设,我的习惯是用密码管理器生成一串长密码,然后单独发密码给对方,密码和文件绝不走同一个渠道。你把加密包和密码一起丢在微信里,加密就等于没做。
忘记密码这件事,必须提前说清楚:7z 的 AES-256 加密,忘了就是真没办法,网上那些“压缩包密码破解工具”本质上是在跑字典,密码稍微复杂一点,跑一年也跑不出来。我见过同事把三年前的合同包锁了,密码记在一个已经报废的笔记本里,最后只能重新找人要原件。重要的包,密码一定要进密码管理器。
还有一种常见误区是“双重压缩更安全”。把加密包再压一层,实际上并不会让破解变难多少,只是多了一步操作,还容易把自己绕晕。要安全就一次做对,别叠层。
压缩包坏了怎么办
压缩包损坏最常见的表现是解压到一半弹出“数据错误”或者“CRC 校验失败”,意思是你这个包里的某些数据在传输或者存储过程中出了偏差,跟原文件对不上了。
第一步不是急着解压,而是先测试。右键压缩包,选 7-Zip 菜单里的“测试”,它会从头到尾校验一遍,然后告诉你到底有没有问题、哪个文件有问题。这一步很快,比自己瞎试省事。
如果测试报出某几个文件坏了,但其他文件正常,那就用提取,遇到错误时它会提示,选择继续,能救出来多少算多少。这是它比某些软件强的地方:不会因为一个坏文件把整个包判死刑。
如果坏的是压缩包的头部(开头那一段),那基本没救,因为文件目录就存在头部,头没了就不知道里面装了什么。这种情况只能找发送方重新传。
想从根本上降低这种风险,压缩的时候可以选择“添加恢复记录”,但这个功能 rar 格式支持得更好,7z 没有同等的东西。所以如果是长期归档的重要数据,我会在压缩完之后额外生成一份校验文件,把哈希值单独保存。以后文件坏了,至少能第一时间知道,而不是等到要用的时候才发现。
还有一类“损坏”其实是假象:分卷没凑齐、文件被网盘改过名、下载时被杀软拦了一半。遇到报错先检查这三点,比怀疑硬盘坏道靠谱得多。
几个我踩过的坑
第一个是中文文件名乱码。别人用苹果系统压缩的 zip,拿到 Windows 上打开,里面的中文文件名全变成一堆问号。这不是 7-Zip 的锅,是 zip 格式对文件名编码的支持一直很混乱。解决办法是让对方改用 7z 格式,或者压缩时在参数里指定使用 UTF-8 存文件名。自己给别人发文件,养成用 7z 的习惯,能省掉很多来回扯皮。
第二个是杀毒软件误报。压缩包里如果有可执行文件,或者包本身带自解压功能,某些杀软会直接把它隔离掉,你看到的现象是“文件明明在,但打不开”。遇到这种情况先看杀软的隔离区,确认来源可靠再恢复,别一上来就把杀软关了。
第三个是自解压包。7-Zip 可以生成 exe 格式的自解压包,好处是对方不用装压缩软件,双击就能解。坏处是这种文件特别容易被邮件系统和聊天工具拦截,而且体积会大一点。除非对方是完全没有电脑基础的人,否则我都不做自解压,直接发 7z。
第四个是路径太长。Windows 对路径长度有历史限制,压缩包里如果有那种嵌套十几层的目录,解压到一半会报“文件名太长”。解决办法是把包解压到盘的根目录下一个短名字的文件夹里,别放在桌面那种本身路径就很长的地方。
第五个是“压完怎么没小多少”。视频、图片、音频、pdf 这些格式本身就是压缩过的,再用压缩软件去压,基本压不动,能省个百分之二三就算不错。想让这类文件变小,只能转码或者降分辨率,压缩软件帮不上忙。这一点很多人不理解,白等半小时。
命令行:批量干活的时候比界面快
7-Zip 装完之后带一个命令行程序,路径在安装目录下,名字是 7z.exe。它的好处是可以写进脚本,定时备份、批量加密都能自动跑。
常用的几条我列一下。压缩并分卷:7z a -v3900m -mx=5 -p -mhe=on D:\备份\素材.7z D:\素材\,这里的 -v 是分卷大小,-mx 是压缩等级,-p 表示要密码(运行时会提示输入),-mhe=on 就是加密文件名。
解压:7z x D:\备份\素材.7z.001 -oD:\还原\,-o 后面跟输出目录,注意 o 和路径之间没有空格。测试:7z t 包名,这个跟界面里的测试是一回事。看包内清单:7z l 包名,不解压只列目录,检查别人发来的包里有没有奇怪的东西时很好用。
写脚本的时候有个细节要注意,路径里有空格必须加引号,中文路径一般没问题,但如果脚本是给老版本系统用的,最好统一用英文目录。还有一个,命令行执行时会提示输入密码,这个交互在定时任务里会卡住,得用 -p密码 的形式直接把密码写进去,但这样密码就明文躺在脚本里了,自己权衡。
校验:传输大文件必须做的一步
压完一个大包,怎么确认对方收到的是完好的?最土的办法是比大小,但大小一样不代表内容一样,中间错一个字节大小也可能不变。靠谱的做法是算哈希。
7-Zip 自带的命令行可以算,用法是在命令后面加哈希类型,算出来的值和发送方对一下,一致就说明文件没问题。我一般用 SHA-256,虽然算得慢一点,但碰撞概率可以忽略。
实际流程是:压完包,算一遍哈希,把哈希值连同文件一起发给对方;对方收到之后再算一遍,两个值一模一样才算传输成功。这套流程听起来麻烦,但吃过一次“文件传坏了、双方互相怀疑”的亏之后,你就会觉得这三十秒花得值。
我的日常用法总结
发给普通同事的文档,用 zip,兼容性优先,不加密。发给客户、涉及报价和合同的,用 7z 加 AES-256,勾上加密文件名,密码另发。给网盘传大素材,用 7z 分卷 3900m,所有分卷同目录,压缩等级选快速。自己长期归档的资料,用 7z 极限压缩加固实,压完算一份哈希存到文本里。
需要拆开别人的包看里面有什么,用 7z l 先列清单再决定解不解,这一步能避免解压出一堆垃圾文件。需要抢救损坏包,先测试再提取,能救多少算多少,救不出来的找源头重传。
这套规则不复杂,但每一条都是被实际问题逼出来的。压缩软件这东西平时存在感很低,真到传大文件、签合同、救数据的时候,参数填错一个,浪费的就是半天时间。
最后提醒一句:不管用哪个压缩软件,重要数据永远别只留一份压缩包。压缩包是搬运工具,不是备份方案。硬盘坏了、网盘清了、密码忘了,任何一个环节出问题,包里那点东西就真没了。
