FileNest工作文件减压站
第一方批量安全证据

批量处理之前,FileNest 实际检查了什么?

这份证据不把“安全”当成一句口号。它把当前生产批量改名与图片批次的可核对机制拆开:先看什么、什么会阻止执行、什么只是提醒、源文件是否会被覆盖,以及输出重名怎样处理。

打开批量改名 机器可读 JSON
绑定生产源码

10 项可核对的生产行为

依据绑定受审 commit 的实际批量改名、图片转换与输出命名源码重新核对。本次复核继续覆盖批量改名 Pro CSV 映射完整性:CSV 在本机采用严格字段状态解析,未闭合引号、未引用字段中的非法引号、引用字段闭合后的非法字符、不完整行与同一原文件名的冲突目标都会在进入映射状态前被拒绝;表头使用明确的双列识别,避免把普通文件名误当表头;非空映射值保持原始字符,不以 trim 改写用户文件名;“保留原扩展名”开启时 CSV 目标只能改变名称主体,关闭后目标扩展名才会生效。本次新增复核确认预览执行快照:通过设备工作集门禁并点击下载后,Renamer 先复制该次 file/newName 与计数元数据,再同步锁定工作集;ZIP 内容、成功统计和下载记录均使用同一快照,打包完成后才解锁。继续核对执行前预览、输出重名阻断和原文件保护。图片侧既有源图预览、活动批次锁定、设置撤销/重做和输出命名行为保持不变。这里记录的是可从当前实现核对的防错行为,不把 UI 提示或设备容量启发式扩大解释成零风险保证。

绑定生产 commit:467e9d6b;引用 5 个生产源码文件。
执行前显示原文件名 → 新文件名

改名工作区为每个文件计算并显示原文件名、新文件名、警告与错误,让用户在生成 ZIP 前逐项检查结果。点击确认下载后,该次 file/newName 对会复制为执行快照并锁定工作集,直到 ZIP 完成;ZIP 内容、成功计数与下载记录使用同一快照,避免打包中修改界面造成“看到的预览”和“收到的 ZIP”分叉。

源码:components/RenamerTool.tsx

CSV 映射先完整校验,再进入改名预览

CSV 映射在浏览器本地解析。未闭合双引号、未引用字段中的非法引号、引用字段闭合后的非法字符、缺少任一列的映射行,以及同一原文件名指向不同目标名称的冲突都会拒绝本次导入,不把部分坏数据写进映射状态。只有同时匹配受支持原文件名列和新文件名列的首行才被视作表头;非空映射键和值不会因为输入清洗而被去掉合法的前后空格。

源码:components/RenamerTool.tsx · lib/renamer-csv-map.ts

同批次重复输出名会阻止执行

输出名称按不区分大小写的方式检查重复;同批次冲突会成为阻断错误,而不是等 ZIP 生成后才发现覆盖风险。

源码:components/RenamerTool.tsx

常见不安全文件名条件会阻止执行

当前检查包括空名称、斜线/反斜线、控制字符、常见保留符号、结尾空格或句点、Windows 保留名,以及超过当前 180 字符上限的输出名。

源码:components/RenamerTool.tsx

扩展名行为由同一开关明确控制

“保留原扩展名”开启时,无论普通规则还是 CSV 映射都使用源文件扩展名;CSV 目标里的不同扩展名不会偷偷替换它。关闭该选项后,CSV 目标扩展名才可生效;如果有扩展名的源文件最终输出没有扩展名,工作区仍给出提醒,因为移除扩展名可能是用户有意操作。

源码:components/RenamerTool.tsx · lib/renamer-csv-map.ts

存在阻断错误时执行入口不可用

改名批次存在红色阻断错误时,生成下载 ZIP 的执行入口保持禁用,先要求解决命名冲突或非法名称。

源码:components/RenamerTool.tsx

超出设备安全工作集时仅阻止 ZIP 生成

改名工具根据设备内存、CPU 与粗指针提示选择保守的单次 ZIP 原始文件总字节窗口。超过窗口时,文件仍可留在批次中继续预览、排序与调整命名规则,但不会进入 JSZip 打包;500 个文件数量上限保持不变。

源码:components/RenamerTool.tsx · lib/renamer-zip-capacity.ts

改名生成新 ZIP,不覆盖或删除原文件

执行时使用浏览器中已有的原 File 对象,把它们以拟议新名称写入新的 ZIP;FileNest 不直接覆盖或删除用户设备上的源文件。

源码:components/RenamerTool.tsx

批量图片可逐张查看源图缩略图

图片在加入批次时为每个源文件建立一个浏览器 Object URL,多图批次显示可点击缩略图供处理前逐张切换检查;删除、清空或卸载工作区时会释放对应 URL。撤销/重做只恢复图片设置快照,不替换这些源文件对象。

源码:components/ImageConverterTool.tsx

图片结果重名会确定性追加编号

图片输出使用同批次已用名称集合做不区分大小写的去重;发生冲突时依序生成 name (2)、name (3) 等名称,避免 ZIP 中出现同名结果。

源码:components/ImageConverterTool.tsx · lib/file-names.ts

Why preview first

为什么这比“一键批量处理”更重要

结构错误先拦截

重复输出名和常见非法名称在改名执行前成为阻断错误,减少批量下载后才发现冲突。

人的意图仍由人确认

扩展名变化和编号顺序可能是故意的,因此预览不会假装软件能替用户判断所有业务语义。

原件与输出分开

改名结果进入新的 ZIP,而不是在网页里直接改写或删除用户设备上的原文件。

Scope limits

这份证据没有保证什么

  • 这份证据当前只覆盖批量改名与图片批次的预览、命名、原文件保护和改名 ZIP 工作集门禁,不代表 FileNest 每一个工具都使用完全相同的安全流程。
  • 文件名校验能发现结构性冲突和常见非法名称,但无法判断每个项目里的业务语义是否正确,例如编号顺序是否符合用户真实意图。
  • 浏览器标准 File 对象不会可靠暴露完整本地路径;Pro CSV 映射因此按文件名匹配。如果一次选择来自不同文件夹但文件名完全相同的文件,CSV 不能为这些同名文件分别指定不同目标。输出重名仍会被现有冲突校验阻止,但需要路径级区分时应分批处理。
  • 扩展名丢失属于提醒而不是硬性阻断,因为用户可能有意改变或移除扩展名;执行前仍需要人工检查。
  • 图片缩略图是加入批次的源图预览,不是每一种转换、压缩、增强结果在执行前的最终像素级保证。
  • 图片撤销/重做历史是当前会话内、有界的设置快照,不保存原图副本,也不是跨设备或跨会话版本历史。
  • ZIP 工作集窗口是基于浏览器可获得设备提示的保守启发式,不是精确内存测量,也不能保证所有浏览器在窗口内都绝不会失败;实际打包仍可能受设备、文件可压缩性和浏览器实现影响。
  • 这是绑定受审 commit 的快照;如果当前工具页与旧证据冲突,应以当前工具页为准并更新本报告。
查看图片批次工具查看处理隐私矩阵查看信任中心