文档与 OCR实用指南

同名报表ZIP怎么交接?保留目录,逐文件核对实际下载

交接north/report.csv与south/report.csv时,先保留完整路径。本篇提供完整虚构源ZIP、路径与字节清单及冲突副本;逐项核对新下载的压缩包与CSV,不把下载成功或浏览器自动加的文件名后缀当成来源依据。

两只标有DOSYA字样的旧纸质文件夹
配图:Cht Gsml · Unsplash License

本次修订:新增完整源ZIP、字节与路径清单、整包/子集/单文件实操,并加入大小写冲突包及恢复核对。

先把问题解决

整包导出应保留三条原始文件路径及各自字节;北区子集保留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.csvid,amount;N01,100保留北区来源
south/report.csvid,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.csv18N01,100
south/report.csv18S01,250
notes.txt56来源说明保留

整包与单文件,选错路线才会丢掉来源

打开ZIP查看与解压,选取一个ZIP,先阅读完整条目,再保留所需勾选。下载所选文件的新ZIP后重新打开,核对上表路径和内容。当前实现按条目完整路径重新打包,不把不同文件夹里的同名文件压成一个。

单独下载适合只取一份材料,但它使用路径最后一段作为建议文件名。如果连续下载两份report.csv,浏览器可能重命名或提示保存位置;这不等于自动记录了north与south。应在自己的保存目录中立即加上来源名,并把对应关系写入清单。

文件交付的校验和与版本清单解释了如何验证具体字节。校验和不同说明文件不同,却不能单独告诉你哪份应当进入业务汇总;来源和版本规则仍需人为确定。

按任务选择交付路线

两部门一起交接

保留目录,下载所选文件ZIP,附完整路径清单。

只取北区一份

单独下载后明确保存到north目录或改成带来源的名称。

准备汇总数据

先保留原包,再对齐字段;不要在解压阶段猜测哪行重复。

分别跑整包、子集与单文件三条路线

每条路线都使用ZIP查看与解压。参考清单说明应该对照的内容,不等于你的设备已经生成相同结果。以下小样在浏览器处理,仍需确认来源及本次选择范围。

  1. 上传source.zip,确认三条非目录文件。保持全选,点“下载所选文件ZIP”,将extracted-files.zip与原包分开保留;把新下载ZIP重新上传,应仍有north/report.csv、south/report.csv与notes.txt。
  2. 回到source.zip,取消“选择 south/report.csv”,保留north/report.csv和notes.txt,下载两文件子集并对照subset-manifest.csv;交付时注明北区子集,不写成完整原包。
  3. 回到source.zip,分别点击north/report.csv与south/report.csv旁的“单独下载”。两次建议文件名都是report.csv,先核对N01,100与S01,250,再另存来源明确的名称或目录,并保留download-map.csv。
  4. 对整包逐文件比较完整路径、字节数和内容。若另算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内容分别对应各自来源。
  • 单独下载后的名称与来源映射已记录。
  • 只选择部分文件时,清单明确说明这是子集。

常见问题

把两份文件改成不同名字就能合表吗?

改名只解决文件身份,不解决表头、日期、金额类型或业务重复。先保留来源,再按实际汇总规则处理。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

继续阅读