先把问题解决
整包导出应保留三条原始文件路径及各自字节;北区子集保留north/report.csv与notes.txt,明确标为部分资料。南北两份单独下载都建议命名report.csv,必须另保留来源映射。重新打包可能改变ZIP本身字节,不代表内部文件变化。
先用完整路径给文件建立身份
本文使用自编练习:north/report.csv包含N01,100,south/report.csv包含S01,250,另有notes.txt说明来源。两份CSV都有表头id,amount。金额不相同,内容也不相同;同一个基名不足以证明它们重复。
这个练习只有三个文件。目录条目可以被压缩软件单独列出,不能把界面显示的所有行都当成业务文件数。验收时明确统计的是非目录文件,并保留完整路径。
| 完整路径 | 关键内容 | 检查目的 |
|---|---|---|
| north/report.csv | id,amount;N01,100 | 保留北区来源 |
| south/report.csv | id,amount;S01,250 | 保留南区来源 |
| notes.txt | 自编练习与目录说明 | 解释两份文件的关系 |
先找到练习包里的source.zip
先解开外层练习包。source.zip才是三文件业务输入,case-conflict.zip是故障副本;expected-manifest.csv列三条源路径、字节数和SHA-256,subset-manifest.csv对应北区子集。README与答案属于练习包,不能算进原业务包的三文件数量。
两份CSV表头均为id,amount,北区是N01,100,南区是S01,250。原source.zip单独保留。新ZIP可能使用不同压缩或时间信息,应比较包内文件字节,而不是要求两个完整压缩包校验和相同。
| 路径 | UTF-8字节数 | 核对内容 |
|---|---|---|
| north/report.csv | 18 | N01,100 |
| south/report.csv | 18 | S01,250 |
| notes.txt | 56 | 来源说明保留 |
整包与单文件,选错路线才会丢掉来源
打开ZIP查看与解压,选取一个ZIP,先阅读完整条目,再保留所需勾选。下载所选文件的新ZIP后重新打开,核对上表路径和内容。当前实现按条目完整路径重新打包,不把不同文件夹里的同名文件压成一个。
单独下载适合只取一份材料,但它使用路径最后一段作为建议文件名。如果连续下载两份report.csv,浏览器可能重命名或提示保存位置;这不等于自动记录了north与south。应在自己的保存目录中立即加上来源名,并把对应关系写入清单。
文件交付的校验和与版本清单解释了如何验证具体字节。校验和不同说明文件不同,却不能单独告诉你哪份应当进入业务汇总;来源和版本规则仍需人为确定。
按任务选择交付路线
两部门一起交接
保留目录,下载所选文件ZIP,附完整路径清单。
只取北区一份
单独下载后明确保存到north目录或改成带来源的名称。
准备汇总数据
先保留原包,再对齐字段;不要在解压阶段猜测哪行重复。
分别跑整包、子集与单文件三条路线
每条路线都使用ZIP查看与解压。参考清单说明应该对照的内容,不等于你的设备已经生成相同结果。以下小样在浏览器处理,仍需确认来源及本次选择范围。
- 上传source.zip,确认三条非目录文件。保持全选,点“下载所选文件ZIP”,将extracted-files.zip与原包分开保留;把新下载ZIP重新上传,应仍有north/report.csv、south/report.csv与notes.txt。
- 回到source.zip,取消“选择 south/report.csv”,保留north/report.csv和notes.txt,下载两文件子集并对照subset-manifest.csv;交付时注明北区子集,不写成完整原包。
- 回到source.zip,分别点击north/report.csv与south/report.csv旁的“单独下载”。两次建议文件名都是report.csv,先核对N01,100与S01,250,再另存来源明确的名称或目录,并保留download-map.csv。
- 对整包逐文件比较完整路径、字节数和内容。若另算SHA-256,对照expected-manifest.csv中的单文件值,不比较重新打包后整个ZIP的校验和。只有“三文件”这个总数,不能发现一份CSV被另一份替换。
同基名不冲突,完整路径冲突需要停下来
当前入口会拦截不安全路径以及规范化后的大小写冲突。例如North/report.csv与north/report.csv在本工具中视为冲突;../report.csv之类的父目录路径也会停止处理。遇到提示时向发送方索取路径明确的新包,不要随意删除一项来凑通过。
JSZip官方读取说明指出,库本身可能合并同名条目,并把不安全相对路径规范化。本站额外检查原始路径,但已经被上游打包工具覆盖掉的条目无法凭空恢复。界面显示三项,只能证明当前可读取三项,不证明发送者最初的四份资料都在。
不要把“压缩包能打开”当作文件无恶意、内容无错误或来源可信的证明。本文不提供加密ZIP破解或丢失文件恢复。
冲突副本应停止,再从明确原包恢复
另开一轮上传case-conflict.zip,里面故意放入North/report.csv与north/report.csv。当前工具应提示同名或大小写冲突,并禁用所选ZIP导出。材料只是无害教学CSV,检查的是名称处理,不是恶意文件检测或通用安全认证。
保留被拒绝副本供核对,重新上传已知的source.zip恢复,核对三条路径并再下载。真实来件应向提供者索取来源明确的新包;不清楚内容就删掉一个冲突条目,可能丢掉有效报表。
重新打开下载包,才完成这一轮交付
用三项清单逐项比对:north仍为N01与100,south仍为S01与250,notes仍在。然后另存一份单文件,确认它的内容来自你选中的目录。这样可以把“目录保留”与“某次下载来自哪里”分别验收。
本站当前限制为最多1000个文件、输入合计150 MiB、解压内容合计300 MiB;界面简称MB。加密、分卷或不支持的压缩方式无法处理,内存不足也可能需要更小批次。不要用本文的三文件结果推断大包一定能完成。
若下一步是合并两份CSV,按不同表头的合并方法核对字段、来源与总量。压缩和解压只是移动容器,不会替你决定业务去重规则。
收件人应能复核
- 原ZIP保留,未被新下载覆盖。
- 三条非目录路径与发送清单一致。
- 两个report.csv内容分别对应各自来源。
- 单独下载后的名称与来源映射已记录。
- 只选择部分文件时,清单明确说明这是子集。
常见问题
把两份文件改成不同名字就能合表吗?
改名只解决文件身份,不解决表头、日期、金额类型或业务重复。先保留来源,再按实际汇总规则处理。
参考资料与延伸阅读
按步骤开始处理
进入对应工具,预览处理结果,检查导出的文件。


