Java中如何获取文件创建时间
来源:互联网 发布:xy手机助手 for mac 编辑:程序博客网 时间:2024/06/07 16:28
Java中如何获取文件创建时间?有没有搞错!
直觉上本人以为java.io.File已经直接提供了获取文件创建时间的方法,悲剧的是,UNIX和Linux平台压根就没有文件创建时间的概念,因此,Java作为一门具备跨平台特性的语言,在API中提供获取文件创建时间的方法是不合适的。当然,任何平台都有文件最后修改时间的概念,java.io.File.lastModified()便是获取文件最后修改时间的方法。
那么,java中如何获取文件创建时间呢?方式不外乎两种:
1 强大的JNI,windows自己当然清楚如何获取文件创建时间了,用微软自己的C系列搞个dll吧。
2 不那么强大的Runtime,扔下C++那么久了,我才不要再搞什么dll,太烦了,直接用Runtime应付得了。
直接上代码:
package com.dancen.test;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;/** * Runtime获取文件创建时间示例 * * @author Dancen * */public class FileCreatedDemo{public static void main(String[] args){try{String fileCreated = getFileCreated("D:\\xiyou.jpg");System.out.println(fileCreated);}catch(Exception e){e.printStackTrace();}}public static String getFileCreated(String path){if(null == path){return null;}return getFileCreated(new File(path));}public static String getFileCreated(final File file){if(null == file){return null;}String rs = null;final StringBuilder sb = new StringBuilder();Process p = null;try{p = Runtime.getRuntime().exec(String.format("cmd /C dir %s /tc", file.getAbsolutePath()));}catch(IOException e){return rs;}final InputStream is = p.getInputStream();final InputStreamReader ir = new InputStreamReader(is);final BufferedReader br = new BufferedReader(ir);Runnable runnable = new Runnable(){@Overridepublic void run(){String data = null;try{while(null != (data = br.readLine())){if(-1 != data.toLowerCase().indexOf(file.getName().toLowerCase())){String[] temp = data.split(" +");if(2 <= temp.length){String time = String.format("%s %s", temp[0], temp[1]);sb.append(time);}break;}}}catch(IOException e){e.printStackTrace();}finally{try{if(null != br){br.close();}if(null != ir){ir.close();}if(null != is){is.close();}}catch(IOException e){e.printStackTrace();}}}};Thread thread = new Thread(runnable);thread.start();try{thread.join();} catch(InterruptedException e){e.printStackTrace();}if(0 != sb.length()){rs = sb.toString();}return rs;}}
至于返回的时间字符串,仅精确到秒;时间格式是否与系统环境相关,需进一步确认。
- Java中如何获取文件创建时间
- Java 获取文件创建时间
- java获取文件创建时间
- java获取文件创建时间
- java获取文件创建和修改时间
- Java 获取文件创建时间2
- 获取文件创建时间
- Java中如何得到文件的创建时间&最后修改时间
- MFC中获取文件的属性(包括文件创建时间、修改时间、访问时间、文件大小等)
- 直接由Java获取文件的创建时间
- 直接由Java获取文件的创建时间
- php获取文件创建时间/修改时间
- php获取文件创建时间、修改时间
- java获取文件的创建时间、修改时间和访问时间(含优化)
- Java 通过 JNA (Java Native Access) 获取、设置 Windows 操作系统的文件创建时间、文件修改时间、文件访问时间
- 如何获取到文件的创建时间,修改时间等参数
- java中如何获取文件路径
- Java中如何获取到资源文件
- zoj 1088
- 完成端口二
- 没有审美能力,看看这个布局行不
- Linux/Unix 中如何在复制一个目录时排除其中的某个文件
- linux防arp欺骗的方法
- Java中如何获取文件创建时间
- BTF020开发板点个灯。。。。嘻嘻
- windows phone:动画(二)
- UVAOJ 401 注意点...
- C++拾遗
- 101 The One Where Monica Gets a New Roommate (The Pilot-The Uncut Version)
- MySQL 5.1参考手册
- ubuntu12.04新立得安装
- 测试结果: 平和恬淡的9号性格