Java 批量重命名文件
以下实例演示了使用java I/O流读取文件夹中所有的文件名,并基于for循环使用 File 类的 oldFile.renameTo(newFile) 方法批量重命名文件。
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Stream;
public class RenameFiles {
private static Set<String> specifiedKeywords = new HashSet<>();
public static void main(String[] args) {
// 需要被替换的关键词,为空时不替换
specifiedKeywords.add("Wiener");
specifiedKeywords.add("汉声中国传统童话");
// 获取要批量重命名的文件目录
String path = "/Users/Music/你的文件目录";
walkRename(path);
}
public static void walkRename(String targetPath) {
Path dir = Paths.get(targetPath);
try (Stream<Path> paths = Files.walk(dir)) {
paths.forEach(path -> {
if (Files.isRegularFile(path)) {
// 初始化新文件名,命名规则请根据需求自定义,以剔除指定字符串为例进行演示
ifRename(new File(path.toString()));
} else if (Files.isDirectory(path)) {
// 是目录,不重命名
System.out.println("Directory: " + path);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 文件名包含关键词时替换
* @param oneFile 待重命名的文件
* @return true 替换成功
*/
private static boolean ifRename(File oneFile) {
String fileName = oneFile.getName();
String parentPath = oneFile.getParent();
for (String match : specifiedKeywords) {
// 包含指定关键词时才重命名
if (fileName.indexOf(match) >= 0) {
// 通过路径+名字拿到旧文件
String newFileName = fileName.replaceAll(match, "");
String newFileObjName = parentPath + "/" + newFileName;
boolean ret = oneFile.renameTo(new File(newFileObjName));
System.out.println("旧File: " + fileName);
System.out.println("新File名: " + newFileObjName + ",替换结果 = " + ret);
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}
}
Java 批量重命名文件的更多相关文章
- 用Java批量重命名文件
要事先在C盘里创建“照片”和“照片1”两个文件夹 1import java.io.*; public class Jack { public static void main(String[] arg ...
- Linux批量重命名文件
五种方法实现Linux批量重命名文件 Linux批量重命名文件是指对某些特定的文件统一进行重新命名,以改变原来一批文件的名称,这里介绍五种方法来实现. Linux批量重命名文件会涉及到改变一个字母.改 ...
- Linux命令行bash批量重命名文件
本文介绍下,在linux下使用shell批量重命名文件的例子,有需要的朋友参考下吧. 在linux中,重命名文件名,需要用到mv命令.如果需要批量重命名名一批文件,就需要写bash脚本或命令行了. 例 ...
- cmd - 批量重命名文件
相信大家或多或少都遇到过类似的情况:从网上下载了好多图片(或者其他的文件),这些图片的名字往往都是些乱七八糟的字母数字的组合,我们想要一次性修改几十张上百张的图片的名字应该怎么办呢? 这里有两种方法, ...
- [转]【Windows小技巧】批量重命名文件
注:如果文件名包含空格,命令应写成ren "s0 (1).gif" s001.gif,简而言之,就是加上双引号!!!原因:系统将s0和(1).gif认为是两个参数,再加上后面的s0 ...
- windows dos 批量重命名文件
描述 在工作中经常出现 在同一目录下有一些 很多相同扩展名的文件但是名字看起来很乱各不同,我们想将它们统一重命名一下统一的格式,如果一个个去改名字太麻烦了. 这里我门就可以使用windows下 dos ...
- 怎样用bat批量重命名文件夹和文件
很早以前本人写过重命名文件夹的文章,发现其中稍有不完善的地方,其主要功能在文件夹名前统一加上字符,或者在文件夹名后统一加上字符,有网友反应功能太单一.今天我又仔细研究了一下bat批处理代码,分别能完全 ...
- [转]Windows系统下批量重命名文件(bat命令版本)
原文地址:https://jingyan.baidu.com/article/6dad507524bdcba122e36e44.html 我们有时候会遇到大量文件需要重命名,Windows系统下右键菜 ...
- 【批处理】ren命令_批量重命名文件
[ren命令] 说明:ren是“rename(重命名)”的简写: 命令:REN [Drive:][path] <old filename> <new filename> 解释: ...
- linux 批量重命名文件
模拟结果文件路径结构大概是:/当前目录/模型名/字模型名模拟/模拟温度/模拟结果文件. 模拟结果文件命名时相同的.模拟结果文件需要修改模拟结果文件的后缀名. 附shell脚本: find -type ...
随机推荐
- 机器学习 | 强化学习(3) | 无模型预测(Model-Free Prediction)
无模型预测(Model-Free Prediction) 无模型预测概论 上一节课<通过DP求解>可以解决一个已知的马尔科夫决策过程 本节课 实践无模型预测 解决或者估计一个未知马尔科夫决 ...
- 【ABAQUS文档笔记】实体单元特性&剪切闭锁-沙漏问题-非协调模式-混杂单元
来自ABAQUS DOCUMENT/GETTING STARTED WITH ABAQUS/CAE /USING CONTINUUM ELEMENTS 1. 单元公式和积分 1.1 full inte ...
- 红日复现为什么失败之struct-046流量分析加msf特征总结
struts2漏洞 一.指纹识别 s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名 部署在根目录下,工程名可 ...
- WebScoket-服务器客户端双向通信
WebScoket学习笔记 1. 消息推送常用方式介绍 轮询 浏览器以指定的时间间隔向服务器发出HTTP请求,服务器实时返回数据给浏览器. 长轮询 浏览器发出ajax请求,服务器端接收到请求后,会阻塞 ...
- MySQL查询建表规范
因为之前一直再查找一些比较好的数据库规范,以方便在开发时连接 MySQL 进行查询/建表的时候,能根据规范来执行,达到提高 查询速度 / 执行 SQL 的性能 和提升 MySQL 的整体性能, 这里主 ...
- JMeter BeanShell 获取 HTTP Request 中的 Name
场景:添加 JMeter log 输出,想输入自定义请求的名称 // 获取 response body prev.getResponseDataAsString(); // 获取 HTTP Reque ...
- WARN Issues with peer dependencies found,pnpm peer dependencies auto-install
前言 pnpm 也需要设置自动安装对等依赖项 解决 pnpm 使用 npm 的配置格式,所以应该以与 npm 相同的方式设置配置: pnpm config set auto-install-peers ...
- mongodb 数据库操作——备份 还原 导出 导入
mongodump备份数据库 命令格式 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户,可以去掉-u和-p. 如果导出本机 ...
- bug|jest|vue|记录:关于【4-4 使用 TDD 的方式开发 Header 组件(1)】05:26时的运行测试用例出错的问题
错误情景 提示 jest 配置错误 Configuration error Configuration error: Could not locate module @/components/Hell ...
- [每日算法 - 华为机试] leetcode680. 验证回文串 II
入口 力扣https://leetcode.cn/problems/valid-palindrome-ii/submissions/ 题目描述 给你一个字符串 s,最多 可以从中删除一个字符. 请你判 ...