- 浏览: 339039 次
- 性别:
- 来自: 大西洋底
文章分类
最新评论
-
jfztaq:
问题果然解决了,太感谢了
Chrome经常性的“喔唷,崩溃了”问题 -
saintor:
因为不是每个subclass都执行Cloneable吧。
Java Object类的方法们 -
337240552:
写的不错 这个东西晕死一堆人。
对JavaScript中原型的理解 -
liang86liang:
jkleeo 写道很深奥啊.
C/CPP只有在大学的时候听说过 ...
Windows下用Eclipse搭建C/C++开发环境 -
ahong520:
看来你也是四国军棋爱好者,啥时候切磋一下
四国军棋游戏V0.3.5(未完成)
在给小宝拍的照片中,有我手机拍的,有媳妇手机拍的,还有相机拍的,于是每个月给小宝选的30张照片中,文件命名很乱。现在根据文件修改属性,统一按时间戳命名,精确到秒。
程序如下:
(程序规模小,因此未考虑潜在的重名问题)
即使就是今天,还是遇到了同名的问题,可见,作为一个合格而严谨的代码工,一定不能心存任何侥幸。程序更新如下,对于同一秒拍摄的照片,使用毫秒级的时间戳加6位随机整数来命名,以此解决上面程序的同名问题:
-------------------------------------------------------
程序再次更新,源于变态的apple使用iTunes导出文件,导致modified date time跟拍摄时间不一致。下面程序读取Exif信息做为拍摄时间,需要导入外部JAR包 metadata-extractor-2.4.0-beta-1.jar
程序如下:
(程序规模小,因此未考虑潜在的重名问题)
import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class UpdateFileName { private static final String dir = "C:/Documents and Settings/Administrator/My Documents/My Pictures/dir/"; public static void updateName() { File fdir = new File(dir); File[] list = fdir.listFiles(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss"); for (File f : list) { if (f.isFile() && f.getName().toUpperCase().endsWith(".JPG")) { Date date = new Date(f.lastModified()); String newName = sdf.format(date); System.out.print(f.getName() + "\t"); System.out.println(newName + ".jpg"); f.renameTo(new File(dir + newName + ".jpg")); } } } /** * @param args */ public static void main(String[] args) { updateName(); } }
即使就是今天,还是遇到了同名的问题,可见,作为一个合格而严谨的代码工,一定不能心存任何侥幸。程序更新如下,对于同一秒拍摄的照片,使用毫秒级的时间戳加6位随机整数来命名,以此解决上面程序的同名问题:
import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Random; public class UpdateFileName { private static final String PROCESS_DIR = "C:/Documents and Settings/Administrator/My Documents/My Pictures/dir/"; private static final Random RANDOM = new Random(); /** * update the picture file names */ public static void updateName() { File fdir = new File(PROCESS_DIR); File[] list = fdir.listFiles(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss"); // 需要考虑重名文件问题 HashMap<String, Integer> fileAllNames = new HashMap<String, Integer>(); SimpleDateFormat sdfAnother = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss.SSS"); for (File f : list) { if (f.isFile() && f.getName().toUpperCase().endsWith(".JPG")) { Date date = new Date(f.lastModified()); String newName = sdf.format(date); if (fileAllNames.containsKey(newName) ){ // 有重名的 newName = sdfAnother.format(date); int rint = RANDOM.nextInt(999999-100000+1)+100000 ; // get a number between [a,b] newName = newName + "."+ String.valueOf(rint); } fileAllNames.put(newName, 1); System.out.print(f.getName() + "\t\t\t"); System.out.println(newName + ".jpg"); boolean succeed = f.renameTo(new File(PROCESS_DIR + newName + ".jpg")); if (!succeed) { System.err.println("Rename failed: New File Name - " + newName); } } } } /** * @param args */ public static void main(String[] args) { updateName(); } }
-------------------------------------------------------
程序再次更新,源于变态的apple使用iTunes导出文件,导致modified date time跟拍摄时间不一致。下面程序读取Exif信息做为拍摄时间,需要导入外部JAR包 metadata-extractor-2.4.0-beta-1.jar
import java.io.File; import java.util.HashMap; import java.util.Random; import com.drew.imaging.jpeg.JpegMetadataReader; import com.drew.imaging.jpeg.JpegProcessingException; import com.drew.metadata.Directory; import com.drew.metadata.Metadata; import com.drew.metadata.MetadataException; import com.drew.metadata.exif.ExifDirectory; public class UpdateJPGNameWithTimeStamp { private static final String PROCESS_DIR = "C:/Users/IBM_ADMIN/Pictures/11/"; private static final Random RANDOM = new Random(); private static String model = ""; public static String findEXIFDateTime(File jpegFile) { Metadata metadata; try { metadata = JpegMetadataReader.readMetadata(jpegFile); Directory exif = metadata.getDirectory(ExifDirectory.class); String newname = exif .getDescription(ExifDirectory.TAG_DATETIME_ORIGINAL); // System.out.println(newname); if (newname!=null && newname.contains(":")){ newname = newname.replaceFirst(":", "-"); newname = newname.replaceFirst(":", "-"); newname = newname.replaceFirst(":", "."); newname = newname.replaceFirst(":", "."); newname = newname.replaceFirst(":", "."); } model = exif.getDescription(ExifDirectory.TAG_MODEL); // System.out.println(exif.getDescription(ExifDirectory.TAG_EXIF_VERSION)); return newname; } catch (JpegProcessingException e) { e.printStackTrace(); } catch (MetadataException e) { e.printStackTrace(); } return null; } public static void updateAll() { File fdir = new File(PROCESS_DIR); File[] list = fdir.listFiles(); // 需要考虑重名文件问题 HashMap<String, Integer> fileAllNames = new HashMap<String, Integer>(); for (File f : list) { if (f.isFile() && f.getName().toUpperCase().endsWith(".JPG")) { String newName = findEXIFDateTime(f); if (newName == null || newName.equals("")) { continue; } if (fileAllNames.containsKey(newName + ".jpg")) { // 有重名的 int rint = RANDOM.nextInt(999999 - 100000 + 1) + 100000; newName = newName + "." + String.valueOf(rint); } newName = newName + ".jpg"; fileAllNames.put(newName, 1); System.out.print("Old name: " + f.getName() + "\t"); System.out.print("New name: " + newName + "\t"); System.out.println("by " + model); boolean succeed = f.renameTo(new File(PROCESS_DIR + newName)); if (!succeed) { System.err.println("Rename failed: New File Name - " + newName); } } } System.out.println("Done! Totally updated " + fileAllNames.keySet().size() ); } /** * @param args */ public static void main(String[] args) { UpdateJPGNameWithTimeStamp.updateAll(); } }
发表评论
-
文件分割与合并
2020-03-19 20:59 228package com.test.filestool; ... -
盒子里面另一个是红球的概率问题
2019-05-08 09:27 710问题如下:引用有三个盒子,其中一个里面是两个红球,一个里面是两 ... -
Mac OS X 下运行Java standalone 连接 Notes
2017-11-27 12:32 744Mac OS X 下运行Java standalone 连接 ... -
随机密码生成
2015-09-10 10:19 742import java.util.Random; p ... -
Java 处理mail subject
2015-06-15 21:16 1038对于mail subject 前面烦人的各种Re: 或Fw: ... -
有趣的“生命游戏”
2013-04-04 10:56 1005“生命游戏” 本世纪70年代,人们曾疯魔一种被称作“生命游戏” ... -
有趣的统计英文单词频率的例子
2013-03-02 00:22 1921统计一篇英文文档或一本小说中单词出现的次数,下面代码使用的是英 ... -
有趣的统计英文字母频率的例子
2013-03-01 01:13 1326统计的是英文版"悲惨世界",代码如下,使用 ... -
有趣的将一个十进制整数转换成二进制输出的算法
2013-02-27 00:20 1310原题是将一个十进制整数转换成二进制输出。 分析:任何数可以表 ... -
关于Java的UUID
2012-08-30 18:40 8280UUID或者UNID或者UID,是一个统一唯一标识,可以用来标 ... -
关于Java中的哈希表 HashMap,Hashtable 等
2012-07-27 10:10 2748首先来了解一下基本概念 所谓哈希表(Hash Table,又 ... -
关于Java中的哈希表
2012-07-27 10:01 1关于Java中的哈希表首先 ... -
关于Java的“浅拷贝”和“深拷贝” (clone method)
2012-07-24 14:31 1261这是关于Java的clone, 一些知道的和不知道的。 1. ... -
从某网站下载MP3的例子
2012-05-29 23:14 1344从某网站下载MP3的例子。为安全起见,将网站信息匿了。 ... -
统计项目中Java文件数和Java代码行数
2010-12-25 11:51 6434其实就是使用递归遍历目录下所有文件 import jav ... -
Java循环内goto语句的替代方案
2010-12-12 23:04 3207众所周知,Java虚拟机根本没有实现goto关键字。我的一个函 ... -
Struts 2 + Spring 2 + JPA + AJAX示例
2009-09-12 21:18 2539这个例子其实就是来自Struts 2的文档,但是原例子针对的是 ... -
Java线程编程学习笔记(二)
2009-06-11 17:23 1281这里是上一篇:Java线程编程学习笔记(一) Java线程编 ... -
Java线程编程学习笔记(一)
2009-04-09 10:46 2147"Java Thread Programming&q ... -
学习Spring 2.5和Hibernate 3的代码示例
2008-06-06 16:01 2462代码内容(每个包都是一个独立的应用,彼此不干涉): 一个最小 ...
相关推荐
然后对水印文字或者图片进行设置,接下来设置水印的透明度和位置,单击“路径设置”区域的“浏览”按钮,对水印图片的保存路径进行设置,全部设置完成后,单击“执行”按钮,即可批量为选择的图片添加文字或者图片...
一键批量改文件或照片改名或后缀名,快速方便,自动解决命名冲突
然后对水印文字或者图片进行设置,接下来设置水印的透明度和位置,单击“路径设置”区域的“浏览”按钮,对水印图片的保存路径进行设置,全部设置完成后,单击“执行”按钮,即可批量为选择的图片添加文字或者图片...
处理照片的时候,想改成统一名字,可以把本bat文件放到照片目录下,一键执行。 批处理结果是,所以文件名字前面加上修改时间后缀,方便查看: 例如: 修改前:纸鹤.jpg 修改前:20211102+纸鹤.jpg
MapGIS扫描件批量改名工具 行政代码+宗地号+000+$权调表#+*.jpg 使用时双击选中图片的上一级的上一级的文件夹即可(图片的上一级文件应该为宗地号)。
一键更改统一文件名前后缀,包括img图片名统一风格等
python3 实现同一个文件夹下图片统一命名,如将dh67hc.jpg , hdha89.jpg修改为dog.0.jpg , dog.1.jpg……
由于自己经常利用浏览器插件下载网页图片,由此产生很多的文件夹和文件,这些文件夹的名字多半是网页的title,导致文件夹名很长,文件名多是些很长的数。感觉这样的状况不是很好就自己用java实现了简单的shell来管理...
选择工具->统一大图大小即可选择要处理图片的文件夹路径,批量对图片统一 到(1240×1754)大小; 5.选择工具->大图批量重命名即可选择要处理图片的文件夹路径,批量对图片进 行重命名图片并把不合格图片更改格式...
3.图片名字尽量不要重名,特殊符号,或过长! 批量上传: 1.此功能可以在浏览时选择多选图片,选择打开,等待列表显示,然后点上传所有文件即可! 2.最小尺寸建议140*140. 3.图片名字尽量不要重名,特殊符号,或过长! 4....
需要批量修改文件名称,变为统一前缀名称并且自增索引,修改后效果 最简单的人力操作就是逐个文件重命名,但本着DRY(Don’t repeat yourself)原则,还是写一个node脚本搞定。 研究 node中要进行文件操作需要了解...
3.图片名字尽量不要重名,特殊符号,或过长! 批量上传: 1.此功能可以在浏览时选择多选图片,选择打开,等待列表显示,然后点上传所有文件即可! 2.最小尺寸建议140*140. 3.图片名字尽量不要重名,特殊符号,或过长! 4....
站点名称 站点地址 客服旺旺 帮派地址 appkey secretkey 完整PID LOGO地址 标题包含名字 微淘图片 底部LOGO图片 关注主页地址 分享U站图片 18 商品排序列功能 商品设置排序ID可以指定商品排在哪个位置 默认按添加...
站点名称、站点地址、客服旺旺、帮派地址、appkey、secretkey、完整PID、LOGO地址、标题包含名字、微淘图片、底部LOGO图片、关注主页地址、分享U站图片 18、商品排序列功能 商品设置排序ID可以指定商品排在哪个位置...
站点名称、站点地址、客服旺旺、帮派地址、appkey、secretkey、完整PID、LOGO地址、标题包含名字、微淘图片、底部LOGO图片、关注主页地址、分享U站图片 18、诊断商品 点击诊断商品按钮将站内推广期内的商品商品...
站点名称、站点地址、客服旺旺、帮派地址、appkey、secretkey、完整PID、LOGO地址、标题包含名字、微淘图片、底部LOGO图片、关注主页地址、分享U站图片 18、诊断商品 点击诊断商品按钮将站内推广期内的商品商品...
1、将整个目录上传到虚拟空间,即可直接访问 index.asp 首页文件(不可以将index.asp改成其它的名字,否则系统跳转出错),不需要做其他的操作。 2、后台登陆文件“admin/deep_login.asp”,可任意更改管理目录名...
1、增加自定义用户组名称功能,现在您可以自由的为所有权限的用户取一个您喜欢的名字了(更改后用户下一次登录系统将会显示新的权限名称。例如,将“数据员”改为“秘书”等) 2、调整登陆页面设计。暂时屏蔽日程...