public static String getFileCreateDate(File _file){
File file=_file;
try{
Process ls_proc = Runtime.getRuntime().exec("cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
DataInputStream in = new DataInputStream(ls_proc.getInputStream());
for (int i = 0; i < 5; i++ )
{
in.readLine();
}
String stuff = in.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time=st.nextToken();
in.close();
return dateC;
}catch (Exception e){
return null;
}
}
在jdk中,File的操作并没有取得文件创建时间的方法。唯一提供提供的方法是
lastModified()返回long值。牺牲创建时间的方法实在是为了满足跨平台的需要。但在windows环境中,需要取得文件创建时间的情况是存在的。
实现的办法是通过windows本地命令行来取得创建日期。以上代码主要取自http://forum.java.sun.com/thread.jspa?threadID=311281&messageID=1247450
但此文提供的原始代码尚有不足,无法解析带有空格的文件夹名,如:C:\\Program files\等,解决办法是在路径前后加上",执行语句变为
"cmd.exe /c dir "" + file.getAbsolutePath() + "" /tc"。以上方法返回的是我实际程序需要的数据格式,大家有兴趣可以自行改编