Java 实现文件批量重命名亲测可用(精简版)
package com.cmge.utils; import java.io.*;
import java.util.*;
import java.util.Map.Entry; import com.cmge.db.EpDB;
import com.cmge.db.SysEmployeeDB; public class RenameImg { EpDB db = new EpDB(); private Map<String, String> map; public RenameImg() {
this.map = new HashMap<String, String>();
} public Map<String, String> getMap() {
return map;
} // 添加新的替换规则(字符串替换)
public RenameImg addRegulation(String oldStr, String newStr) {
this.map.put(oldStr, newStr);
return this;
} /**
* 批量重命名
*
* @param path
* @param replacementChain
*/
public void multiRename(String path, RenameImg replacementChain) {
File file = new File(path);
boolean isDirectory = file.isDirectory();
/** 如果不是文件夹,就返回* */
if (!isDirectory) {
System.out.println(path + "不是一个文件夹!");
return;
}
String[] files = file.list();
File f = null;
String filename = "";
String oldFileName = ""; // 之前的名字
/** 循环遍历所有文件* */
for(String fileName : files){
oldFileName = fileName;
Map<String, String> map = replacementChain.getMap();
for (Entry<String, String> entry : map.entrySet()) {
fileName = fileName.replace(entry.getKey(), entry.getValue());
}
f = new File(path + "\\" + oldFileName); //输出地址和原路径保持一致
f.renameTo(new File(path + "\\" + fileName));
}
System.out.println("恭喜,批量重命名成功!");
} public void Rename(String path) {
File file = new File(path);
boolean isDirectory = file.isDirectory();
/** 如果不是文件夹,就返回* */
if (!isDirectory) {
System.out.println(path + "不是一个文件夹!");
return;
}
String[] files = file.list();
File f = null;
String oldFileName = ""; // 之前的名字
String name="";
String badge="";
/** 循环遍历所有文件* */
for (String fileName : files) {
oldFileName = fileName;
//Map<String, String> map = replacementChain.getMap();
name=oldFileName.substring(0, oldFileName.lastIndexOf("."));
badge=getEmpBadge(oldFileName.substring(0, oldFileName.lastIndexOf(".")));
fileName = fileName.replace(name, badge+"_004");
f = new File(path + "\\" + oldFileName); // 输出地址和原路径保持一致
f.renameTo(new File(path + "\\" + fileName));
}
System.out.println("恭喜,批量重命名成功!");
} public void Insert(String path) {
File file = new File(path);
boolean isDirectory = file.isDirectory();
/** 如果不是文件夹,就返回* */
if (!isDirectory) {
System.out.println(path + "不是一个文件夹!");
return;
}
String[] files = file.list();
File f = null;
String sql="";
String badge="";
/** 循环遍历所有文件* */
for (String fileName : files) {
badge=fileName.substring(0, fileName.lastIndexOf(".")).substring(0,5);
sql="insert into lsq_fujian (badge,type,optdate) select '"+badge+"','"+001+"',sysdate from dual ";
System.out.println(sql);
db.updateBySql(sql);
}
System.out.println("恭喜,数据插入成功!");
} public String getEmpBadge(String name ){ String sql="select badge from tf_employee where name='"+name+"'";
String m= db.getValue(sql);
return m; } public static void main(String[] args) {
RenameImg replacementChain = new RenameImg();
//第一步把文件命名规则化
//replacementChain.addRegulation("(", "").addRegulation(")", "");
//replacementChain.multiRename("D:\\HR部门资料\\HR锐明\\人员附件\\0简历", replacementChain);
//第二步将文件命名有姓名改为工号_001
//replacementChain.Rename("D:\\HR部门资料\\HR锐明\\人员附件\\001身份证");
replacementChain.Insert("D:\\HR部门资料\\HR锐明\\人员附件\\001身份证");
} }
Java 实现文件批量重命名亲测可用(精简版)的更多相关文章
- java IO 文件批量重命名
java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...
- Java实现文件批量重命名
Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...
- 使用java对文件批量重命名
有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如 ...
- C#实现文件批量重命名源码下载
本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...
- php文件夹下文件批量重命名
php文件夹下文件批量重命名 <?php header("Content-type:text/html;charset=utf-8"); $dir = __DIR__.'./ ...
- 使用 vim 快速对当前文件夹下的文件批量重命名
前言 我们在使用 Linux 的时候,有很多种方法可以对文件进行重命名,例如 命令行 下的 mv 命令,或者是使用像 dolphin 这样的图形文件管理器.但是有时候需要对一个文件夹下的所有文件批量重 ...
- 利用Python对文件批量重命名
由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是 i.后缀名 ( i 循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...
- 【Linux】文件批量重命名
例如:我们现在有如下文件列表 我们现在想要把.log..LOG与.rar为扩展名的文件全部重新命名,具体脚本如下: #!/bin/sh ##------------------------------ ...
- Mac OS Yosemite 文件批量重命名
首先,我们选中一个文件夹 右键,或者回车,给一个文件夹改名 同时选中三个文件夹 右键,选中批量更改 弹出批量更改,进行更改 改好后点回车,就能看到效果了 继续操作,完成所有文件 ...
随机推荐
- oracle 中execute immediate
简单来说 就是你一个存储过程当中 创建了一个表 table_a 然后要用insert into将其他的数据插入到这个table_a当中,但是因为你在创建过程的时候 table_a还不存在,过程就会显示 ...
- 第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传
第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传 实现原理 前台用cropper插件,将用户上传头像时裁剪图片的坐标和图片,传到逻辑处理 ...
- js url?callback=xxx xxx的介绍
由于安全的原因,浏览器做了很多方面的工作,由此也就引入了一系列的跨域问题,需要注意的是: 跨域并非浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了.最好的例子是 CSRF ...
- linux mysql远程连接的命令
mysql -u 用户名 -h 远程IP地址 -p 随后输入密码. 要确认远程数据库3306端口是否开放,mysql服务是否启动. hadoop@Master:~$ mysql -u root -h ...
- [转]Apache 监听端口失败,selinux惹的祸
原文在此 CentOS 下启动Httpd 失败,报 (13)Permission denied: make_sock: could not bind to address [::]:8000 因为 小 ...
- linux环境中,查看域名的DNS信息?
需求说明: 今天在linux主机上,要查询一个域名是在哪个DNS上进行解析的,这个域名下面还有哪些的地址 操作过程: 1.linux环境中通过nslookup命令来进行查看 [deployer@CBS ...
- mysql数据库中查看当前使用的数据库是哪个数据库?
环境描述: mysql版本:5.5.57-log 操作系统版本:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求说明: 查看当前使用的 ...
- JS去除字符串左右两端的空格
去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim.ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写.下面的实现方法是用到了正则表达式,效率不错,并把这三 ...
- 关于float样式
在认识float样式之前务必要认识position:absolute position:absolute 功能是:当前节点脱离文档流,对于其兄弟节点(即同一父节点下的节点)已经感觉不到他的存在(即他的 ...
- selenium chrome登陆手机 pc淘宝
接口登录淘宝,困难度极高,没有人已经实现过. 淘宝登录selenium 手机版 pc版. 由于每天需要使用ip代理大批量的异地登录淘宝帐号,这种情况必然会出现淘宝滑动验证码,使用ActionChai ...