Skip to content

Releases: Haorran/file-tools

0.2.7

Choose a tag to compare

@Haorran Haorran released this 14 Sep 07:33

文件工具箱 0.2.7

本说明覆盖 0.2.4 → 0.2.7 的全部变更(新增 / 改进 / 修复)。

✨ 本版本亮点

  • 暂存区目录树视图:扁平列表升级为「左目录树 + 右文件列表」两栏,按原目录结构归组查看,大目录暂存不再一屏滚不到底
  • 暂存区删除能力:新增「清空暂存区」整区删除和行内单文件「删除」按钮——此前文件进了暂存区只能恢复,想丢弃只能绕道建任务流程
  • 查重「全选」按钮:一键勾选所有可移入文件,批量清理更顺手

🗑 暂存区(本版本重点重做)

新增能力

  • 目录树 + 文件两栏视图:左侧按原路径的目录结构递归建树,节点显示递归文件数(嵌套子目录正确缩进),扫描根直属文件归「根目录」、原路径未知的归「未知路径」;右侧显示选中目录下所有文件,保留行级「恢复」
  • 清空暂存区:一键永久删除该目录暂存区全部文件与清单(确认弹窗提示「物理删除,不进系统回收站,且不可恢复」);移入 / 恢复进行中自动禁用,避免竞态
  • 单文件删除:行内「恢复」旁新增「删除」按钮,永久删除单个文件(点击即删,不弹确认);「原路径未知」条目也可删——这是清理孤儿条目的唯一途径
  • 删除后结果面板「暂存区」计数实时递减

改进

  • 标题显示总大小:如「共 2306 项 844.08 GB」
  • 分页升级:「每页 10/20/50」下拉 + ‹ › 翻页 + 精确跳页输入框;行首新增弱化序号

🔍 单目录查重

  • 「全选」选择按钮:规则按钮行最前新增,一键勾选所有「未锁定 + 未移入」文件;已锁定文件视作「每组至少保留一个」不触碰,与安全阀不冲突(移入暂存区可恢复);与选择规则互斥

🐛 主要修复

  • 空状态黄色说明条未水平居中

0.2.4

Choose a tag to compare

@Haorran Haorran released this 24 Aug 09:19

文件工具箱 0.2.4

本说明覆盖 0.1.52 → 0.2.4 的全部变更(新增 / 改进 / 修复)。

✨ 本版本亮点

  • 全文搜索加速(FTS):文件索引关键词搜索(≥3 字符)从 1~2 秒降到 <100ms(可选,默认关闭)
  • 文件索引正式发布:去除 beta 标记,左右分栏 + 三页签,构建队列、跨目录全局搜索、历史快照搜索一应俱全
  • 索引维护大幅提速:删除索引实测 38.3s、无变化重建秒级跳过落库、WAL 自动回收、停用 FTS 物理缩库
  • 查重 / 比较提速:查重完整模式两阶段校验、比较内容校验并行化
  • 兼容旧系统:无开放 API 的旧 fnOS 自动降级为手动授权,同一安装包通吃

📇 文件索引

新增能力

  • 全文搜索加速(FTS5 trigram):关键词搜索(≥3 字符)从 1~2 秒降到 <100ms;默认关闭,启用前确认弹窗说明存储代价;索引内容无变化时 FTS 完全跳过、有变化只增量更新;2 字中文词自动回退子串匹配
  • 搜索 LRU 缓存:重复关键词搜索秒回;可开关、手动清空;启用 FTS 后自动禁用缓存
  • 搜索耗时展示:结果头部「共 X 项 · 用时 Y 秒」
  • 左右分栏 + 三页签:搜索 / 设置 / 记录(原纵向堆叠重构)
  • 跨目录全局搜索:合并全部索引、按目录分组计数、全局分页排序;跨索引构建记录
  • 构建队列:多目录排队单 worker 串行执行,排队中可取消
  • 索引设置:每目录「打开应用自动刷新」+ 刷新策略 + 快照保留份数;全局设置一键应用到所有索引
  • 构建记录:触发方式 / 耗时 / 结果 / 失败详情,失败与停止也必落记录
  • 历史快照:按快照回溯任意一次构建的文件清单、可手动删除;连续相同构建自动去重
  • 构建进度:预统计文件数、实时百分比 + 进度条(遍历 / 扫描 / 落库分阶段)
  • 搜索过滤重做:大小 9 档多选 + 扩展名 Top10 + 自定义输入(三行内联,无弹层)
  • 分页器:页码列表 + 每页大小(50/100/150/200)
  • 删除索引确认:可勾选「同时删除配置 / 历史」,默认只删索引数据,重建后历史自然续接
  • 默认选中「全部索引」、结果默认按大小降序、构建期间行内按钮改停止 / 取消、搜索页签自动刷新 + 刷新按钮、索引设置独立文件化(迁移索引库不带走配置)

性能与存储

  • 删除索引提速:DROP 二级索引 → 只动主键快删 → 批量重建,按被删规模分派;实测 38.3s
  • 无变化重建跳过落库:内容指纹一致 → 秒级跳过(不再整表重写,自动刷新毫秒级完成)
  • 跨目录搜索 / 扩展名强制覆盖索引(117 万行 size 排序 0.28s→6ms);空查询免全表 COUNT
  • 单目录搜索恢复 root 限定扫描(修复回归);FTS 带过滤搜索命中集驱动反查(恢复毫秒级)
  • WAL 自动回收(checkpoint-truncate);停用 FTS 强制 VACUUM 物理缩库
  • FTS 首查预热(构建完成前同步预热倒排索引页,消掉首查 2~3s 冷启动)

主要修复

  • 检查更新误报新版本(改读权威版本来源)
  • 快速切目录竞态(扩展名 / 搜索结果 / 快照显示上个目录数据)
  • 删除索引后「记录」页签残留幽灵记录;根路径尾部斜杠重复索引(/etc/ 与 /etc)
  • 单个文件时间戳超范围拖垮整次构建;老库升级后索引列表报错;快照异常误标构建失败
  • 构建索引期间保存全局设置报 500;索引进度不实时;首次进入索引列表 / 搜索区域空白
  • 复制索引(目录不存在)单索引搜索 400;fmtBytes 单位错标;自动刷新间隔输入钳制
  • 停用 FTS 后状态残留;删除弹窗提示不随勾选变化

🔍 单目录查重

  • 完整模式两阶段校验:先 size + 首尾局部哈希预筛,只对疑似重复做全文件哈希终判,非重复文件免全文件哈希
  • 首尾局部哈希块大小默认统一 1MB(小文件判定更精确)
  • 任务完成瞬间已勾选丢失修复

🗂 多目录比较

  • 内容校验并行化:线程池并行(默认 4 线程),大目录 / 大文件比对显著提速
  • 「内容不一致」统一展示:不再区分「局部哈希」与「完整哈希」,文案统一为「内容哈希」
  • 首尾局部哈希块大小默认统一 1MB

🔄 系统兼容与存储

  • 兼容无开放 API 的旧系统:运行时能力探测自动区分严格 / legacy 两模式;legacy 下跳过授权范围校验、走系统设置手动授权、路径显示原始路径;os_min_version 降回 1.1.3100,同一安装包通吃
  • 能力判定改由后端权威信号驱动:legacy 下「选择目录」「在文件管理器中打开」等按钮置灰 + 引导,不再静默失效
  • 历史任务结果迁到应用私有数据目录:不再出现在用户共享目录,需要时经「导出 / 下载」取出
  • 卸载「保留数据」语义:保留配置与数据(历史结果、文件索引、索引设置与导出文件),「删除所有数据」才全部清理
  • 文件索引结果「复制路径」→「在文件管理器中打开」
  • 卸载向导警示(删除所有数据红色加粗)、「系统不支持选目录授权」改为可关闭 Toast

⚙️ 其他

  • 应用介绍(安装向导 / README)补全「文件索引」工具说明
  • 设置页「检查更新」误报新版本修复

0.1.52

Choose a tag to compare

@Haorran Haorran released this 18 Aug 06:01

文件工具箱 0.1.52

文件工具箱是飞牛 NAS(fnOS)的第三方应用,用于查找目录里的重复文件、比对两个目录是否一致、为目录建索引快速搜索文件。

🔍 单目录查重

  • 三种查重模式:极速(仅按文件名)、推荐(大小 + 首尾校验)、完整(全文件校验)
  • 极速模式可忽略扩展名、忽略文件名大小写
  • 按大小范围过滤
  • 锁定保留:想留下的文件锁定后,选择规则与移入暂存区都会跳过
  • 选择规则:按修改/创建时间、大小、路径自动勾选,每组至少保留一份

🗂 多目录比较

  • 比对两个目录的文件清单与内容一致性
  • 两种校验强度:推荐(大小 + 首尾校验)与完整(全文件校验)
  • 按大小范围过滤
  • 容量与文件数双条对比,差值一目了然

📇 文件索引

  • 为目录建立索引,之后按文件名、扩展名、大小、修改时间搜索
  • 目录快照:文件数、总大小、构建时间、读取错误
  • 可重建、可删除;构建过程关窗后台继续
  • 读取错误的文件可展开查看具体原因

🗑 暂存区

  • 重复文件先移入暂存区,确认后再恢复或永久删除,避免误删
  • 移入 / 恢复支持关窗后后台继续完成
  • 移入前可复核文件,内容已变化的自动跳过、不影响整批
  • 目录有残留暂存区时,建任务前会提示先处理

⚙️ 任务

  • 显示任务进度、耗时与正在处理的文件
  • 可随时终止任务
  • 主题自动跟随系统明暗切换

🔄 系统兼容

  • 新版 fnOS 支持应用内选目录、打开文件管理器、语义路径;旧系统自动降级为手动授权,同一安装包通吃
  • 设置页可检查更新,有新版本一键前往下载

📦 安装与卸载

  • 卸载时可选择保留应用数据(历史任务结果与导出文件)