在jdk中,File的操作并没有取得文件创建时间的方法。唯一提供提供的方法是lastModified()返回long值。牺牲创建时间的方法实在是为了满足跨平台的需要。但在windows环境中,需要取得文件创建时间的情况是存在的。
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Timetake {
/**
* @param _file _file
* @return datetime datetime
*/
public static String getFileCreateDate(File _file) {
File file = _file;
try {
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
BufferedReader br = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));
for (int i = 0; i < 5; i++) {
br.readLine();
}
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(time);
br.close();
return datetime;
} catch (Exception e) {
return null;
}
}
}
File file = new File("C:\\xxh\\102.txt");
String time = Timetake.getFileCreateDate(file);