import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileSystemView; public class imgRename { /**
* 将图片名称修改成图片属性的[修改时间]
*
* @author InJavaWeTrust
*/
public static class ReName { public static String TimeMod="ModeTime";//ModeTime或CreateTime public static void rename(String PATH, String suffix) {
File file = new File(PATH);
File[] files = file.listFiles();
String newName="";
System.out.println("------------重命名------------");
int i=0;
String stri=null;
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyymmddhhmmss");
for (File f : files) {
stri = new DecimalFormat("0000").format(i);
if(TimeMod.equals("ModeTime")){
newName=simpleDateFormat.format(new Date(files[i].lastModified()));
newName=newName+stri+"."+ suffix;
}else if(TimeMod.equals("CreateTime")){
newName=getCreateTime(PATH,suffix)+stri+"."+ suffix;
}else{
return ;
}
newName=newName.replace(" ", "");
newName=newName.replace("/", "_");
newName=newName.replace(":", "_");
System.out.println(f.getName()+" --> "+newName);
//System.out.println(PATH + File.separator + newName);
f.renameTo(new File(PATH + File.separator + newName));
i++;
}
} public static String getCreateTime(String filePath,String suffix){
String strTime = null;
try {
Process p = Runtime.getRuntime().exec("cmd /C dir "
+ filePath
+ "/tc" );
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
if(line.endsWith("."+suffix)){
strTime = line.substring(0,17);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
//System.out.println("创建时间 " + strTime);
//输出:创建时间 2009-08-17 10:21
return strTime;
} public static void main(String[] args) { //获得目标的工作目录
String path = getPath();
if (path != null) {
//LinkedHashMap<String, String> map = getFiles(path);
try {
readfile(path);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } public static String getPath() {
String path = null;
JFileChooser fileChooser = new JFileChooser();
FileSystemView fsv = FileSystemView.getFileSystemView(); //注意了,这里重要的一句
fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
fileChooser.setDialogTitle("请选择要命名为创建日期的图片文件夹...");
fileChooser.setApproveButtonText("确定");
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int returnVal = fileChooser.showOpenDialog(fileChooser); if (returnVal == JFileChooser.APPROVE_OPTION) {
path = fileChooser.getSelectedFile().getAbsolutePath();//这个就是你选择的文件夹的路径
System.out.println(path);
return path;
}
return null;
} /**
* 重命名
*/
/**
* 读取某个文件夹下的所有文件
*/
public static boolean readfile(String filepath) throws FileNotFoundException, IOException {
try { File file = new File(filepath);
if (!file.isDirectory()) {
String fileName = file.getName();
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
/*System.out.println("name=" + file.getName());
System.out.println("path=" + file.getPath());
System.out.println("absolutepath=" + file.getAbsolutePath());
System.out.println("suffix=" + suffix);
*/
if ((suffix.equals( "jpg") || suffix.equals("jpeg") || suffix.equals("gif") || suffix.equals( "png") || suffix.equals("bmp"))&&!fileName.substring(0, 3).equals("201")) {
rename(file.getPath(), suffix);
} } else if (file.isDirectory()) {
//System.out.println("文件夹");
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filepath + "\\" + filelist[i]);
if (!readfile.isDirectory()) {
String fileName = readfile.getName();
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
System.out.println("name=" + file.getName());
//System.out.println("path=" + readfile.getPath());
//System.out.println("absolutepath=" + readfile.getAbsolutePath());
System.out.println("suffix=" + suffix); if ((suffix.equals("jpg") || suffix.equals("jpeg") || suffix.equals("gif") || suffix.equals( "png") || suffix.equals("bmp"))&&!fileName.substring(0, 3).equals("201")) {
rename(file.getPath(), suffix);
break;
}
} else if (readfile.isDirectory()) {
readfile(filepath + "\\" + filelist[i]);
}
} } } catch (FileNotFoundException e) {
System.out.println("readfile() Exception:" + e.getMessage());
}
return true;
} } }

java根据图片创建日期,或最后修改日期重命名的更多相关文章

  1. Oracle表字段的增加、删除、修改和重命名

    本文主要是关于Oracle数据库表中字段的增加.删除.修改和重命名的操作. 增加字段语法:alter table tablename add (column datatype [default val ...

  2. 【Java】对文件或文件夹进行重命名

    在Java中,对文件或文件夹进行重命名是很简单的,因为Java的File类已经封装好renameTo的方法. 修改文件或者文件夹的名字都使用这个方法.例如如下的程序: import java.io.* ...

  3. 针对Oracle表 列字段的增加、删除、修改以及重命名操作sql

    增加字段语法:alter table tablename add (column datatype [default value][null/not null],….); 说明:alter table ...

  4. Oracle使用——Oracle表字段的增加、删除、修改和重命名

    增加字段 语法 alter table tablename add (column datatype [default value][null/not null]); 说明:alter table 表 ...

  5. shell(2)图片重命名

    1:图片重命名 原来的图片名字格式: 改成的图片名字格式: #!/bin/bash #重命名 .png和.jpg #如果原文件的图片名称是从0开始,那么count=:从1开始,那么count= cou ...

  6. java Swing 图片缓冲机制

    java Swing 图片缓冲机制: 参考:http://jorneyr.iteye.com/blog/868858#comments package util; import java.awt.ge ...

  7. python脚本获取文件的创建于修改日期并计算时间差

    由于在计算一个算法的运行时间的时候,需要将文件的创建日期与修改日期读取到,然后计算两者之差,在网上搜索了相关的程序之后,自己又修改了一下,把代码贴在这里,供以后查阅使用,也希望可以帮到其他人. # - ...

  8. Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

    目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总 ...

  9. Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

    通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...

随机推荐

  1. ExtJS4.2下将表单元素放在菜单时不能进行拷贝的问题解决办法

    通过浏览器F12我们发现,在菜单对应的dom元素上面,有几个系统附加的事件处理函数,只要我们将它去掉就可以了.示意代码如下: { xtype: "button", scope: z ...

  2. 安装和破解Navicat

    这里的是安装目录,要记住 额外热任务在桌面创建一个快捷方式 点击完成之后先不要打开运行Navicat.exe这个主程序,把PatchNavicat.exe复制到你刚刚我们安装的路径,,不是你安装包的路 ...

  3. 初识Scratch 3.0

    之前在帮朋友搜集少儿编程教育资料的时候,发现了麻省理工开发的积木式编程语言的Scratch,最近有空玩了下,感觉很惊艳,我能想象用它做一些有趣的事情,Scratch把编程元素变成像乐高积木一样,可以通 ...

  4. C# 异步机制

    Delegate.Invoke Delegate.Invoke is used to execute a delegate on the current thread. A delegate is j ...

  5. css 动态线条制作方案

    利用 :before   or    :after  在元素中添加线条样式: 设置样式的过渡效果属性值: 改变width,left,transform等属性值,设置鼠标移入:hover 效果: li: ...

  6. Win10系统下,本地连接远程桌面(Win2016)图解

    1.Win+R在运行框中输入mstsc,回车 2.在出现的远程登陆窗口中,计算机中输入远程桌面IP 3.点击显示选项按钮,在远程桌面窗口中,点击常规(默认),输入登陆的用户名: XXXXXX 4.点击 ...

  7. Java框架spring 学习笔记(二):Bean的作用域

    Spring 框架Bean支持以下五个作用域: 下面介绍两种作用域,singleton和protoype singleton作用域 singleton作用域为默认作用域,在同一个ioc容器内getBe ...

  8. redis-dump安装与导出redis数据

    一.安装redis-dump redis-dump安装的时候一般都会遇到下面的错误: ERROR: Error installing redis-dump:redis requires Ruby ve ...

  9. ROS零门槛学渣教程系列(二)——Linux常用指令:mkdir、tar、 unzip、cp、scp、mv、rm、find、apt、ssh

    Linux常用指令通过上一教程,我们获得了ubuntu系统.Linux是一个很大的领域.但不要紧张,我们一步步来就是了,跟着教程,需要能用到新知识,会提前介绍给大家.下面学习几个常用的Linux指令. ...

  10. unity 动态更新模型透明度

    RaycastHit[] hits; Vector3 normal = transform.position - target.position; hits = Physics.RaycastAll( ...