之前写了一篇《批处理替换指定目录下所有文件夹名和文件名》,但是会存在些小问题,为了优雅的解决问题,打算用Qt开发个应用软件处理一下,同时把存在的问题都解决了。当然前提是目标机允许运行Qt打包的程序。
实现原理很简单,用QFileDialog让用户选择指定目录,通过深度优先搜索(DFS)逐层逐个遍历文件夹和文件,如果名称符合替换条件则替换相应的字符串,需要注意的是搜索时先搜索子文件夹内部再判断文件夹本身。
为了更方便使用,支持用户输入多个字符串,任意一个匹配成功即认为满足替换条件。例如在下图所示的软件界面中的指定文本,支持输入“aa$bb$cc”,如果文件名中带有aa或bb或cc,均视为满足替换条件,会自动替换为目标文本。
软件界面: