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中,F(xiàn)ile的操作并沒(méi)有取得文件創(chuàng)建時(shí)間的方法。唯一提供提供的方法是
lastModified()返回long值。犧牲創(chuàng)建時(shí)間的方法實(shí)在是為了滿足跨平臺(tái)的需要。但在windows環(huán)境中,需要取得文件創(chuàng)建時(shí)間的情況是存在的。
實(shí)現(xiàn)的辦法是通過(guò)windows本地命令行來(lái)取得創(chuàng)建日期。以上代碼主要取自http://forum.java.sun.com/thread.jspa?threadID=311281&messageID=1247450
但此文提供的原始代碼尚有不足,無(wú)法解析帶有空格的文件夾名,如:C:\\Program files\等,解決辦法是在路徑前后加上",執(zhí)行語(yǔ)句變?yōu)?span id="_50_603_Open_Text">
"cmd.exe /c dir "" + file.getAbsolutePath() + "" /tc"。以上方法返回的是我實(shí)際程序需要的數(shù)據(jù)格式,大家有興趣可以自行改編