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 实现文件批量重命名亲测可用(精简版)的更多相关文章

  1. java IO 文件批量重命名

    java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...

  2. Java实现文件批量重命名

    Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...

  3. 使用java对文件批量重命名

    有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如 ...

  4. C#实现文件批量重命名源码下载

    本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...

  5. php文件夹下文件批量重命名

    php文件夹下文件批量重命名 <?php header("Content-type:text/html;charset=utf-8"); $dir = __DIR__.'./ ...

  6. 使用 vim 快速对当前文件夹下的文件批量重命名

    前言 我们在使用 Linux 的时候,有很多种方法可以对文件进行重命名,例如 命令行 下的 mv 命令,或者是使用像 dolphin 这样的图形文件管理器.但是有时候需要对一个文件夹下的所有文件批量重 ...

  7. 利用Python对文件批量重命名

    由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是  i.后缀名 ( i  循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...

  8. 【Linux】文件批量重命名

    例如:我们现在有如下文件列表 我们现在想要把.log..LOG与.rar为扩展名的文件全部重新命名,具体脚本如下: #!/bin/sh ##------------------------------ ...

  9. Mac OS Yosemite 文件批量重命名

    首先,我们选中一个文件夹   右键,或者回车,给一个文件夹改名   同时选中三个文件夹   右键,选中批量更改   弹出批量更改,进行更改   改好后点回车,就能看到效果了   继续操作,完成所有文件 ...

随机推荐

  1. smarty模板开发基础总结

    前提:1. 部署smarty模板目录:2. 编写Smarty类的子类,定制好template_dir.compile_dir.config_dir.cache_dir.left_delimiter.r ...

  2. mysql limit分页查询效率

    对于有大数据量的mysql表来说,使用LIMIT分页存在很严重的性能问题. 查询从第1000000之后的30条记录: SQL代码1:平均用时6.6秒 SELECT * FROM `cdb_posts` ...

  3. jQuery 文件上传插件:uploadify、swfupload

    jQuery 文件上传插件: uploadify.swfupload

  4. Linux入门基础教程之Linux系统简介

    Linux的历史: Multics项目开发不顺利,贝尔实验室退出该项目后,开发了Unix,商业化后价格昂贵.Dennis Ritchie和Ken Thompson开发了Unix内核以及C语言.Andr ...

  5. Kong安装简介

    评价:其实是一个整合型的方案,从它的安装页面看:http://getkong.org/download/#other该方案基于OpenResty,和lua 提供的功能是统一的Oauth认证.rest封 ...

  6. 正則表達式re中的贪心算法和非贪心算法 在python中的应用

    之前写了一篇有关正則表達式的文章.主要是介绍了正則表達式中通配符 转义字符 字符集 选择符和子模式 可选项和反复子模式 字符串的開始和结尾 ,有兴趣的能够查看博客内容. 此文章主要内容将要介绍re中的 ...

  7. 条理清晰的搭建SSH环境之整合Hibernate和Spring

    上篇博客整合了Struts和Spring,感觉很简单,这篇博客主要讲述Hibernate和Spring的整合. 如果说上篇博客中的整合是以为Spring的IOC可以管理对象,让Struts2里的对象管 ...

  8. Android学习笔记——log无法输出的解决方法和命令行查看log日志

    本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/JohnTsai/p/3983936.html. 知识 ...

  9. Node.js之 EventLoop 理解(转)

    关于Node.js的第一个基本概念是I/O操作开销是巨大的: 所以,当前变成技术中最大的浪费来自于等待I/O操作的完成.有几种方法可以解决性能的影响: 同步方式:按次序一个一个的处理请求.利:简单:弊 ...

  10. dede栏目添加自定义字段方法

    1.首先要进mysql 数据库里添加字段,命名好!比如我下面添加了一个栏目备注字段,当然你字段可以自己新建,找到表dede_arctype(这个是栏目模型的数据库表,这里面我添加的是栏目备注字段cla ...