当前位置: 首页 > news >正文

【小工具开发】通过Java实现批量修改文件名小工具

1. 创建Project(使用Gradle)

2.安装Gradle

修改

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.12-bin.zip

修改

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.12-all.zip

阅读了以下博客,发现gradle目前不适用本项目,故准备转而使用maven

Java 构建工具:Maven vs Gradle,谁更适合你?_gradle和maven的区别 哪个主流-CSDN博客

清除空间1.6GB

3.创建Project(使用Maven)

创建项目

自动下载依赖完成

尝试运行项目

4.编写程序

添加依赖

<dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.38</version></dependency></dependencies>

编写程序

package cn.jkf.file;import cn.hutool.core.io.FileUtil;import java.io.File;
import java.util.Objects;/*** 批量文件重命名<br>* 目标是批量将文件夹中某一些文件按一定规则进行重命名。** @author jkf*/
public class FileRename {/*** 要扫描的文件夹路径*/private static final String ROOT_PATH = "E:\\ollama-models\\blobs";/*** 需要过滤的文件(以该字符串开头的所有文件都将通过规则)*/public static final String RULE_START_STR = "1and3.7z.";/*** 批量重命名策略,加以下后缀*/public static final String RENAME_END_STR = ".rar";public static void main(String[] args) {// 读取文件夹File file = FileUtil.file(ROOT_PATH);if (file.isDirectory()) {for (File f : Objects.requireNonNull(file.listFiles())) {// 检查是文件类型和是否需要替换boolean isFileAndNeedRename = f.isFile() && checkRule(f);if (isFileAndNeedRename) {// 执行文件名修改doRename(f);}}}}private static void doRename(File f) {String name = f.getName();FileUtil.rename(f, name + RENAME_END_STR, true);}private static boolean checkRule(File f) {String name = f.getName();return name.startsWith(RULE_START_STR);}
}

5.调试

执行程序前的文件

执行程序

执行程序后的文件

6.提交git

(1)在gitee上创建项目

(2)复制https方式的clone地址

(3)找一个临时目录clone仓库

git clone https://gitee.com/java-utility-kit/file-rename.git

(4)剪切.git到项目路径下

(5)忽略提交idea相关临时文件

在.gitignore文件中添加以下配置

# idea
.idea

在idea中进行提交

推送到远端仓库

7.总结

在本次实践中,首先尝试使用Gradle创建项目,后因Gradle download失败转向Maven。在Maven项目中添加Hutool依赖,编写了文件批量重命名工具,实现将指定前缀的文件添加".rar"后缀的功能。项目开发完成后,通过Git提交至Gitee仓库,并配置.gitignore忽略IDE文件。整个实践过程涵盖了项目构建、依赖管理、功能实现和版本控制等关键开发环节。

http://www.lqws.cn/news/73873.html

相关文章:

  • OpenGL 3D 编程
  • 单元测试-断言常见注解
  • PolyGen:一个用于 3D 网格的自回归生成模型 论文阅读
  • 【Day43】
  • NodeJS全栈WEB3面试题——P2智能合约与 Solidity
  • Java集合初始化:Lists.newArrayList vs new ArrayList()
  • css使用scoped之后样式失效问题
  • 【Python序列化】TypeError: Object of type xxx is not JSON serializable问题的解决方案
  • Java引用类型
  • BayesFlow:基于神经网络的摊销贝叶斯推断框架
  • rabbitmq Topic交换机简介
  • 「Python教案」字符串格式化操作
  • 微服务-Sentinel
  • Windows环境下Scoop包管理工具的全面指南
  • 60、Polly瞬态故障处理
  • uni-id-pages login-by-google实现
  • 网络安全:网页密码防护与记住密码功能的安全
  • ubuntu24.04 查看时区并设置Asia/Shanghai时区
  • 基于GPT-SoVITS-v4-TTS的音频文本推理,流式生成
  • 设计模式——中介者设计模式(行为型)
  • MDP的curriculums部分
  • LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上
  • 【C语言】C语言经典小游戏:贪吃蛇(上)
  • StarRocks的几种表模型
  • 在 Windows安装 make 的几种方式
  • 结构型设计模式之桥接模式
  • Python基础:人生重开模拟器(小游戏)
  • 二叉查找树 —— 最近公共祖先问题解析(Leetcode 235)
  • SCAU8642--快速排序
  • 计算机视觉---深度学习框架(Backbone、Neck、Head)