AI 开发桌面文件工具,先让每一次写入可核对

最后更新:

从文件清单和副本整理开始,先预演,再确认执行。程序能显示目录,不等于已经能安全处理用户的工作文件。

把“整理文件”缩小到一个可验收任务

假设一个小团队每周收到许多命名不一致的业务资料,希望按资料类别和日期建立整齐的副本目录。本页选择的首版任务是扫描用户主动选择的目录,展示文件名、大小和修改时间,生成整理计划,再把确认过的文件复制到新的输出目录。原目录只读,计划与结果可回查。

这是一份截至 2026-09-12 尚未实跑整应用的教学方案,没有桌面安装包或跨平台成功记录。它并不把“AI 自动理解全部文件”作为前提:首版分类可以来自人工选择和明确命名规则,先保证文件不会丢失。需要读取 PDF、表格正文时,另行验收解析准确性;能复制文件不代表已经理解内容。

本地文件扫描、整理预演、确认复制、哈希核对与恢复的教学流程
教学流程示意:展示文件工具的安全处理顺序,不是已运行的 Tauri 软件或安装包截图。

先生成计划表,避免一点击就批量改名

计划表要列出每个源文件和目标相对路径,结果状态使用 copy、conflict、skip 等稳定字段。两个文件即使来自不同子目录,也可能归类成同一个目标名称;不能默认后者覆盖前者。对同名、仅大小写不同、空文件名和超长路径给出明确决定,让用户在真正写入前能看见影响。

下表使用虚构文件名说明预演结果,没有读取任何客户文件。示例选择为同名文件增加稳定编号,原始文件保持不动。重新预演相同输入应得到相同计划,避免每次随机编号使人无法判断哪些文件会变化。计划过期或源文件改变时,重新检查对应项,不把旧计划当成永久授权。

源相对路径拟输出路径计划状态用户复核点
甲组/说明.pdf资料/说明-001.pdfcopy类别与编号是否符合约定
乙组/说明.pdf资料/说明-002.pdfcopy不得覆盖上一文件
草稿/空白.txt待确认/空白.txtreview零字节是否为有效资料
链接/共享目录不生成skip教学首版不跟随符号链接
历史/报告.pdf资料/报告.pdfconflict目标已存在,等待明确处置

桌面框架解决系统桥接,权限仍要你设计

需要本地目录选择与文件操作时,可以沿 Tauri 官方路线研究桌面壳和文件插件。Tauri 2 的 capabilities 用于约束窗口或 WebView 可访问的命令;文件插件还要配置可访问路径范围。允许调用某个文件命令,不代表自动可以读写任意路径,参见 Tauri Capabilities文件系统插件,核对日期 2026-09-12。本文没有验证具体依赖版本组合。

教学设计采用“用户所选输入目录可读、专用输出目录可写”。不要直接给整个主目录读写权限来消除报错。执行边界应在后端校验解析后的路径,防止 ../、绝对路径或符号链接把操作带到批准目录之外;只在 UI 过滤文件名是不够的。运行失败时先区分命令权限、路径范围、系统访问限制和文件自身状态,再把最小错误资料交给 AI。

让 Agent 先交付 dry-run,再交付写入

dry-run 的意思是只生成计划,不修改用户文件。第一阶段读取虚构测试目录,把计划返回到界面,给每项稳定 id;第二阶段才在明确确认后执行复制。把扫描、计划、执行和结果回读分成清楚步骤,可以在界面中展示真实进度,而不是靠一个定时增长的进度条假装工作。

下面是教学开发任务单。实施时沿用项目已有框架、测试和依赖约定,先在临时测试目录完成小流程。不要为了快速看到窗口就让 AI 扫描整个磁盘,也不要把本机开发权限直接变成最终用户必须授予的权限。遇到权限拒绝保留计划,提示用户重新选择,不自动扩大权限。

桌面工具开发 Agent → 批准目录 + 操作计划 + 文件检查结果 → 整理规则实现 / 权限问题定位 / 恢复逻辑复核
教学开发流程:模型不直接获得全盘访问权,也不替代文件复制后的校验。
文件副本整理工具任务.txt
开发本地文件副本整理工具,先完成 dry-run。
输入:用户明确选择的测试目录;输出:独立的新目录。
扫描不跟随符号链接,不读取批准根目录之外的路径。
计划项含 id、sourceRelative、targetRelative、sourceSize、sourceHash。
同名冲突先报告,不覆盖;源文件永不删除或改名。
用户确认计划后逐项复制,目标采用排他创建,已存在则停止该项。
记录每项 planned / copied / verified / failed 状态和错误码。
中断后用日志和实际文件核对,再恢复未完成项,不重跑已验证项。
先使用虚构目录测试,交付命令、结果、权限范围和未测平台。

每项写入都留下日志,恢复先看实际文件

执行时先写计划记录,再用排他创建避免覆盖已存在目标,复制完成后核对字节数和内容哈希,最后标记 verified。输入文件在复制前后可能被别的程序修改,检测到变化就将该项标为待重新计划。复制失败保留错误码与相关相对路径,不把“目录里已经有一个同名文件”当成成功证据。

进程可能在复制结束但日志尚未写入时被关闭,所以恢复不能只依赖最后一个状态。重新打开后对目标文件做大小和哈希核对:匹配才补记 verified;不匹配的残留文件隔离处理,得到用户确认后再重试。停止按钮只停止后续任务,已完成副本保留并列出;原文件始终可用。这比承诺“任何时候都能一键撤销”更容易验收。

单项执行日志的教学结构.json
{
  "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 就自动拥有文件安全性吗?

没有。框架提供权限与系统接口机制,开发者仍要限定命令、路径范围和实际写入行为,并测试越界与失败路径。

哈希检查能判断资料被放到正确分类吗?

不能。哈希用于核对文件内容是否改变,分类是否符合业务需求需要另外复核。两种验收不能互相替代。

这里有已经可安装的桌面工具吗?

没有。本页是文件副本整理的教学设计、任务单与测试矩阵,整应用、安装包、签名和跨平台流程尚未实跑。

本地文件整理需要每个文件调用一次模型吗?

不需要。明确命名和复制规则可由确定性程序执行;只有需要语义理解时才考虑模型,并重新评估数据发送范围与费用。