PowerRename功能太少,我用Flutter自己写了一个
PowerRename 是微软推出的 PowerToys 工具中的一个重命名功能,以前我一直都只是用来批量删除文件名中的一部分。
这次我删除一部分后文件名都一样了,里面虽然有一个贴心的加上后缀的功能,但是延续的是微软一贯风格的 (数字) ,看起来未免有点丑陋🤷♂️。我想要的直接就是数字按序列结尾。然后转身在网上搜了一下这方面的软件,下了其中一个,可以添加很多的规则,但是学习成本有点高。
所以我想就自己做一个。
离上一次使用 Flutter Desktop 已经过去一年了。那时候想写一个写小说的电脑端软件,但是 Flutter 桌面端在 TextField 中使用鼠标滚轮体验太差,滑动太慢。还有一个原因,我想自己设定一种格式,查了资料没找到能看得懂的,就放弃了。之后使用 Flutter Desktop 也只是更新一下 flutter_desktop_test 的依赖。
因为 Flutter 的方便,写了四十多个小时就完成了。本来很开心地写起了使用说明,突然遇到了bug!!!又搞了我好久😑。
本来兴致勃勃,现在只剩下烦躁🤡。以下就是软件的主界面。
在开发的过程中遇到了一些问题。
因为我添加了英语,所以在切换语言的时候会有以下状况出现:
我使用的事 Provider,虽然能够实时切换成另一种语言,但是只能切换能看得到的地方🙁。其他页面没法自动刷新,所以没有改变语言。我最初的设计设置是在弹窗里的,但是弹窗大背景是半透明的,然后用户就会看到上面是一种语言,下面的又是另一种语言。
为了解决这个问题,我把返回按钮的方法做成了切换成另一个界面,刚开始能解决语言切换的问题,但是当我在设置上面添加了“整理文件”的功能后,这个功能界面的语言还是无法转换,于是就把返回按钮的方法改了回去,在后面加了一个“重启生效”。当时还想加一个“重启程序”的按钮,但是不会做😥。
虽然并不需要真的重启。我觉得用户看到这个后,用户发现“原来不用重启也能生效啊😲”,可能会从本来的“改了怎么其他界面没变😠”的愤怒变成震惊🤣。
程序里有一个检测新版本的功能,我使用的是读取 Gitee 仓库里的 version.json 文件。本来还想加个读取 Github 仓库中 version.json 文件,但是一直连接失败,能在浏览器打开,但是无法在程序读取,说是网络的问题就放弃了。
Flutter 开发的程序,因为只能以小写+下划线命名,所以默认打包出来的程序名称也是项目名称。不过以下滑线命名软件看起来也太格格不入了。最后通过大佬提示,可以在 Ruuner.rc 中更改。
说了这么多,大家最关心的还是源码的问题。本项目的所有代码已在 Gitee 和 Github 开源:
- Github:github.com/ilgnefz/onc…
- Gitee:gitee.com/ilgnefz/onc…
也许可能大概存在一些bug,在这个项目上花费的时间也有点多,在主要功能的代码中我都添加了注释。如果发现了问题各位可以自主修复一下😃。
该项目只在 Win10 和 Ubuntu 测试过,macOS 需要自行测试,不出意外应该不用特别配置某个第三方库。
因为使用了 flutter_distributor,打包的配置文件已经配置好了。想打包的要依次执行一下命令:
dart pub global activate flutter_distributor
npm install -g appdmg
flutter_distributor package --platform macos --targets dmg
好了,就是这些。代码可能写得不好,各位大佬可以优化一下。
转载自:https://juejin.cn/post/7216559027513180215