AI 开发桌面文件工具,先让每一次写入可核对
最后更新:
从文件清单和副本整理开始,先预演,再确认执行。程序能显示目录,不等于已经能安全处理用户的工作文件。
把“整理文件”缩小到一个可验收任务
假设一个小团队每周收到许多命名不一致的业务资料,希望按资料类别和日期建立整齐的副本目录。本页选择的首版任务是扫描用户主动选择的目录,展示文件名、大小和修改时间,生成整理计划,再把确认过的文件复制到新的输出目录。原目录只读,计划与结果可回查。
这是一份截至 2026-09-12 尚未实跑整应用的教学方案,没有桌面安装包或跨平台成功记录。它并不把“AI 自动理解全部文件”作为前提:首版分类可以来自人工选择和明确命名规则,先保证文件不会丢失。需要读取 PDF、表格正文时,另行验收解析准确性;能复制文件不代表已经理解内容。

先生成计划表,避免一点击就批量改名
计划表要列出每个源文件和目标相对路径,结果状态使用 copy、conflict、skip 等稳定字段。两个文件即使来自不同子目录,也可能归类成同一个目标名称;不能默认后者覆盖前者。对同名、仅大小写不同、空文件名和超长路径给出明确决定,让用户在真正写入前能看见影响。
下表使用虚构文件名说明预演结果,没有读取任何客户文件。示例选择为同名文件增加稳定编号,原始文件保持不动。重新预演相同输入应得到相同计划,避免每次随机编号使人无法判断哪些文件会变化。计划过期或源文件改变时,重新检查对应项,不把旧计划当成永久授权。
| 源相对路径 | 拟输出路径 | 计划状态 | 用户复核点 |
|---|---|---|---|
| 甲组/说明.pdf | 资料/说明-001.pdf | copy | 类别与编号是否符合约定 |
| 乙组/说明.pdf | 资料/说明-002.pdf | copy | 不得覆盖上一文件 |
| 草稿/空白.txt | 待确认/空白.txt | review | 零字节是否为有效资料 |
| 链接/共享目录 | 不生成 | skip | 教学首版不跟随符号链接 |
| 历史/报告.pdf | 资料/报告.pdf | conflict | 目标已存在,等待明确处置 |
桌面框架解决系统桥接,权限仍要你设计
需要本地目录选择与文件操作时,可以沿 Tauri 官方路线研究桌面壳和文件插件。Tauri 2 的 capabilities 用于约束窗口或 WebView 可访问的命令;文件插件还要配置可访问路径范围。允许调用某个文件命令,不代表自动可以读写任意路径,参见 Tauri Capabilities与文件系统插件,核对日期 2026-09-12。本文没有验证具体依赖版本组合。
教学设计采用“用户所选输入目录可读、专用输出目录可写”。不要直接给整个主目录读写权限来消除报错。执行边界应在后端校验解析后的路径,防止 ../、绝对路径或符号链接把操作带到批准目录之外;只在 UI 过滤文件名是不够的。运行失败时先区分命令权限、路径范围、系统访问限制和文件自身状态,再把最小错误资料交给 AI。
让 Agent 先交付 dry-run,再交付写入
dry-run 的意思是只生成计划,不修改用户文件。第一阶段读取虚构测试目录,把计划返回到界面,给每项稳定 id;第二阶段才在明确确认后执行复制。把扫描、计划、执行和结果回读分成清楚步骤,可以在界面中展示真实进度,而不是靠一个定时增长的进度条假装工作。
下面是教学开发任务单。实施时沿用项目已有框架、测试和依赖约定,先在临时测试目录完成小流程。不要为了快速看到窗口就让 AI 扫描整个磁盘,也不要把本机开发权限直接变成最终用户必须授予的权限。遇到权限拒绝保留计划,提示用户重新选择,不自动扩大权限。
开发本地文件副本整理工具,先完成 dry-run。
输入:用户明确选择的测试目录;输出:独立的新目录。
扫描不跟随符号链接,不读取批准根目录之外的路径。
计划项含 id、sourceRelative、targetRelative、sourceSize、sourceHash。
同名冲突先报告,不覆盖;源文件永不删除或改名。
用户确认计划后逐项复制,目标采用排他创建,已存在则停止该项。
记录每项 planned / copied / verified / failed 状态和错误码。
中断后用日志和实际文件核对,再恢复未完成项,不重跑已验证项。
先使用虚构目录测试,交付命令、结果、权限范围和未测平台。每项写入都留下日志,恢复先看实际文件
执行时先写计划记录,再用排他创建避免覆盖已存在目标,复制完成后核对字节数和内容哈希,最后标记 verified。输入文件在复制前后可能被别的程序修改,检测到变化就将该项标为待重新计划。复制失败保留错误码与相关相对路径,不把“目录里已经有一个同名文件”当成成功证据。
进程可能在复制结束但日志尚未写入时被关闭,所以恢复不能只依赖最后一个状态。重新打开后对目标文件做大小和哈希核对:匹配才补记 verified;不匹配的残留文件隔离处理,得到用户确认后再重试。停止按钮只停止后续任务,已完成副本保留并列出;原文件始终可用。这比承诺“任何时候都能一键撤销”更容易验收。
{
"schemaVersion": 1,
"runId": "demo-run-001",
"itemId": "demo-item-001",
"sourceRelative": "甲组/说明.pdf",
"targetRelative": "资料/说明-001.pdf",
"state": "planned",
"expectedBytes": 128,
"sourceHash": null,
"targetHash": null,
"errorCode": null
}文件工具的验收要刻意制造失败
用临时目录建立普通文件、同名文件、空文件、中文名称、只读文件和指向目录外的链接。先运行预演,确认源目录没有变化;再执行两项复制,在下一项前中断并恢复,核对是否有覆盖、重复输出或漏项。下列用例是待执行测试矩阵,本页没有把它们标为已通过。
针对大目录,需要观察扫描时界面能否取消、内存是否持续增长、错误列表能否导出。操作完成后的摘要应满足“计划总数 = 已验证 + 已跳过 + 失败 + 未执行”,每项有去向。只统计成功文件数量,可能把跳过和丢失混在一起;哈希相同只说明内容相同,文件分类是否正确仍由用户核对。
| 测试情形 | 应有结果 | 复核依据 |
|---|---|---|
| 预演后取消 | 没有文件写入 | 输入与输出目录前后清单 |
| 输出已存在同名文件 | 冲突,不覆盖 | 原目标文件哈希保持 |
| 目标无权限或空间不足 | 失败可见,原文件不变 | 错误码、原文件哈希、残留清单 |
| 批准目录外的符号链接 | 跳过并说明原因 | 计划项与访问范围检查 |
| 复制中断后重新打开 | 复核后恢复未完成项 | 逐项日志与实际目标文件 |
| 输入在执行前改变 | 停止该项并要求重新计划 | 源大小、时间与内容哈希变化 |
安装包交付与本地窗口运行分别验收
开发机能启动窗口,只能说明开发环境的一个入口可用。交付时需要针对目标系统生成安装产物,在干净测试账户里检查安装、首次权限请求、选择目录、处理文件和卸载。签名、系统提示和更新流程按目标平台核对,Tauri 官方提供分发入口,参见 Tauri Distribute,核对日期 2026-09-12;不能据此宣称本文样例已经完成签名或跨平台适配。
交接文件应包含源码版本、构建说明、依赖版本记录、产物哈希、支持的平台和已知限制。日志与用户输出分别保存,卸载时如何处理这些文件要事先说明。升级涉及计划格式变化时,先测试旧日志读取和恢复;只替换可执行文件,并不自动解决旧数据格式兼容。
本地处理的价值与 AI 费用分开衡量
这个工具的交付价值是整理结果可预览、文件去向可查、失败能恢复。验证是否省时,可以拿同一批授权文件分别人工整理和工具整理,记录总时间、纠正次数与遗漏项;本文没有完成此类用户对照,不给出节约比例或收益。开发模型费用按价格页和真实调用记录核对,维护和系统适配单独列项。
若将来让模型理解文件内容,数据可能离开本机,需要重新说明数据流并取得相应授权。先只发送必要内容,输出分类建议由用户确认,不能让模型直接生成任意绝对路径并执行。文件内容处理可接着看办公自动化指南,开发费用选择看编程订阅与 API 比较。
常见问题
为什么先做副本整理,不直接批量改名?
副本路线便于保留原文件并核对结果。原地改名涉及路径冲突、打开文件和恢复顺序,应等基础流程验证后独立设计。
用了 Tauri 就自动拥有文件安全性吗?
没有。框架提供权限与系统接口机制,开发者仍要限定命令、路径范围和实际写入行为,并测试越界与失败路径。
哈希检查能判断资料被放到正确分类吗?
不能。哈希用于核对文件内容是否改变,分类是否符合业务需求需要另外复核。两种验收不能互相替代。
这里有已经可安装的桌面工具吗?
没有。本页是文件副本整理的教学设计、任务单与测试矩阵,整应用、安装包、签名和跨平台流程尚未实跑。
本地文件整理需要每个文件调用一次模型吗?
不需要。明确命名和复制规则可由确定性程序执行;只有需要语义理解时才考虑模型,并重新评估数据发送范围与费用。