结构错误先拦截
重复输出名和常见非法名称在改名执行前成为阻断错误,减少批量下载后才发现冲突。
这份证据不把“安全”当成一句口号。它把当前生产批量改名与图片批次的可核对机制拆开:先看什么、什么会阻止执行、什么只是提醒、源文件是否会被覆盖,以及输出重名怎样处理。
依据绑定生产 commit 的实际批量改名、图片转换与输出命名源码整理。这里记录的是可从当前生产实现核对的防错行为,不把 UI 提示扩大解释成零风险保证。
绑定生产 commit:c35d0c7a;引用 3 个生产源码文件。改名工作区为每个文件计算并显示原文件名、新文件名、警告与错误,让用户在生成 ZIP 前逐项检查结果。
源码:components/RenamerTool.tsx
输出名称按不区分大小写的方式检查重复;同批次冲突会成为阻断错误,而不是等 ZIP 生成后才发现覆盖风险。
源码:components/RenamerTool.tsx
当前检查包括空名称、斜线/反斜线、控制字符、常见保留符号、结尾空格或句点、Windows 保留名,以及超过当前 180 字符上限的输出名。
源码:components/RenamerTool.tsx
如果原文件有扩展名而拟议输出名没有扩展名,工作区给出提醒;它保持为警告,因为用户可能有意改变或移除扩展名。
源码:components/RenamerTool.tsx
改名批次存在红色阻断错误时,生成下载 ZIP 的执行入口保持禁用,先要求解决命名冲突或非法名称。
源码:components/RenamerTool.tsx
执行时使用浏览器中已有的原 File 对象,把它们以拟议新名称写入新的 ZIP;FileNest 不直接覆盖或删除用户设备上的源文件。
源码:components/RenamerTool.tsx
图片批次为加入的源图建立浏览器 Object URL,并在多图批次中显示可点击缩略图,让用户处理前切换检查每张源图。
源码:components/ImageConverterTool.tsx
图片输出使用同批次已用名称集合做不区分大小写的去重;发生冲突时依序生成 name (2)、name (3) 等名称,避免 ZIP 中出现同名结果。
源码:components/ImageConverterTool.tsx · lib/file-names.ts
重复输出名和常见非法名称在改名执行前成为阻断错误,减少批量下载后才发现冲突。
扩展名变化和编号顺序可能是故意的,因此预览不会假装软件能替用户判断所有业务语义。
改名结果进入新的 ZIP,而不是在网页里直接改写或删除用户设备上的原文件。