Flut Renamer:一站式批量文件重命名,跨平台高效管理数字资产
【免费下载链接】renamerFlut Renamer - A bulk file renamer written in flutter (dart). Available on Linux, Windows, Android, iOS and macOS.项目地址: https://gitcode.com/gh_mirrors/ren/renamer
面对 500 张刚导出的照片和满屏的 IMG_0001.jpg,最折磨人的往往不是修图,而是改名。Flut Renamer 是一款基于 Flutter 的跨平台批量文件重命名工具,覆盖 Linux、Windows、Android、iOS、macOS 五个平台。重命名逻辑用纯 Dart 编写,规则配置就是纯文本,方便迁移和复用。
快速上手 📦:五大平台部署一览
到 releases 页面下载对应平台的安装包即可:
| 平台 | 分发格式 | 安装方式/命令 | 备注 |
|---|---|---|---|
| Windows | .exe 安装程序 | 下载后双击安装 | 标准 Windows 安装流程 |
| Linux | .AppImage / .tar.gz | 双击 AppImage 或解压 tar.gz | Arch 系可走 AUR |
| macOS | .dmg 磁盘映像 | 挂载后拖入应用程序 | 标准 Mac 分发格式 |
| Android | .apk / Play 商店 | 商店安装或直装 APK | 支持拖拽添加文件 |
| iOS | .ipa | 通过 AltStore 等侧载 | 沙盒限制需两步选文件 |
Arch Linux 用户可以直接走 AUR:
yay -S flut-renamer # 从源码构建 yay -S flut-renamer-bin # 二进制版本iOS 受沙盒限制,需要先在 Files 里选目录、再在目录内选文件,两步缺一不可。Android 从部分系统文件管理器拖入的文件拿不到绝对路径,Solid Explorer 等第三方管理器则完全正常。
桌面版主界面:左侧文件列表,顶部规则区,底部为执行选项
规则引擎 🔧:七种原子操作如何拼出任意命名逻辑
所有规则都是“原子操作”:每种只做一件事,按添加顺序串联执行,七种实现全部位于 lib/rules/ 目录。
- 增量重命名:把文件名重建为“前缀+序号”,可配起始索引、步长、是否省略分隔符。
Screenshot_2024 → 存档-0 - 文本插入:在指定位置(从头或从尾数)插入自定义文本,支持元数据标签。
IMG_001 → 度假_IMG_001 - 智能替换:支持纯文本与正则,可设大小写敏感和替换次数。
IMG_20240101 → 20240101 - 字符删除:按位置和长度精确删除,也可只保留两个位置之间的内容。
report_draft_v2 → report - 顺序重排:用分隔符拆分文件名,按自定义索引重排片段。
2024_01_photo → photo_2024_01 - 文本转换:大写、小写、简繁互转、转拼音、西里尔↔拉丁,共 7 种模式。
文件01 → WenJian01 - 长度截断:保留或删除指定字符区间,位置可从头或从尾数。
Screenshot_224755_old → Screenshot_224755
增量规则配置:前缀、起始索引、步长与扩展名处理方式都可设置
跨平台架构:一套代码,五种体验
选 Flutter,是因为 Dart 写的界面与重命名逻辑一次完成,即可产出五个平台的原生包。
- Material Design 一套,操作全平台一致
- 平台差异走 Platform Channel 处理
- 五端代码复用率约 90%
- 界面自动适配手机到桌面
十英寸平板上的界面,列表与规则区并排展示
元数据与 Exif 📸:让文件名携带更多信息
照片的拍摄参数都藏在 EXIF 里,手敲进文件名很折磨。在插入或替换规则里写入{Photo:Date}这类标签,执行时应用会自动解析并替换。
可提取的字段包括:
- 照片:拍摄日期时间、相机型号、镜头、光圈、快门、ISO、经纬度、海拔、摄影师
- 文件:大小、创建日期、修改日期
- 音频:专辑名、年份、时长
- 系统:今日日期、当前时间
插入前 → 插入后:DSC_0231.jpg → DSC_0231_2024-01-15_f2.8.jpg。全部解析逻辑在 lib/tools/file_metadata.dart 中。
手机端相机照片列表,即将用 EXIF 元数据插入文件名
三个典型工作流
① 批量规范化
场景:下载目录里文件名下划线、空格、大小写混着来。
- 拖入文件
- 加替换规则,把空格与下划线统一成连字符
- 加转换规则,统一为小写
- 预览列确认后执行
结果:My Report (final).PDF → my-report-final.pdf
② 元数据融合
场景:拍完一组照片,希望文件名带上拍摄信息。
- 添加全部照片
- 加插入规则并开启元数据解析,内容填
{Photo:Date}_{Photo:CamName} - 插入位置设为末尾
- 预览确认后执行
结果:IMG_0231.jpg → IMG_0231_2024-01-15_Sony A7M4.jpg
③ 规则链组合
场景:一批中文命名的文件要放进英文协作环境。
- 加插入规则,开头加项目前缀
- 加转换规则,中文转拼音
- 加替换规则,去掉空格
- 预览确认后执行
结果:会议纪要 v2.txt → Proj_HuiYiJiYao_v2.txt
进阶 ⚡:规则链与正则技巧
规则按添加顺序依次执行,上一步输出是下一步输入,边加规则边看预览。两个实用的正则 pattern:
- 提取:匹配
IMG_(\d{8})_,替换为$1:IMG_20240101_123456.jpg → 20240101_123456.jpg - 格式化:匹配
(\d{4})(\d{2})(\d{2}),替换为$1-$2-$3:20240101_backup → 2024-01-01_backup
一条完整的规则链示例:
第1步 替换:Screenshot_(\d{4})(\d{2})(\d{2})_ → $1-$2-$3_ 第2步 增量:前缀“存档” 结果:Screenshot_20240229_224755.png → 存档-0.png性能建议:
- 先拿几个文件试跑,确认效果再批量执行
- 执行前仔细核对预览列,应用会先做重名检测
- 超大文件集按目录拆成多批处理
规则链预览:增量规则生效后,四个文件的新名称实时刷新
高频问题速查
Q:规则配置跨平台迁移吗?A:规则是纯文本配置,无平台差异。PC 上调好的逻辑,手机上原样可用。
Q:重命名后文件名冲突怎么办?A:内置重名检测机制,执行前会提示,避免两个文件落到同一个名字上。
Q:执行错了能撤销吗?A:应用在执行前展示完整预览,确认后再点执行。执行后没有撤销,预览环节要仔细。
Q:特殊字符和多语言编码支持吗?A:完整支持 Unicode,中日韩文件名都能正常处理,转换规则还能顺手转拼音。
Q:文件很多时性能如何?A:重命名逻辑纯 Dart 内运行,几百个文件的预览生成是即时的。
项目现状与社区方向
已实现:
- 7 种规则类型,可链式组合
- EXIF/音频/文件元数据插入
- 12 种语言界面
- 重名检测与全量预览
路线图:
- 规则与配置云同步
- 批量修改文件属性
- 第三方规则插件系统
- 命令行接口与 REST API
社区方面:欢迎提交翻译、issue 反馈和 PR。
写在最后
回到开头那堆 IMG_0001:拖进文件,串上两三条规则,十几秒后你会看到一列整齐的预览名称。Flut Renamer 不追求大而全,它把重命名这一件事做扎实,并且在五个平台上做得一模一样。这就够了。
【免费下载链接】renamerFlut Renamer - A bulk file renamer written in flutter (dart). Available on Linux, Windows, Android, iOS and macOS.项目地址: https://gitcode.com/gh_mirrors/ren/renamer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考