java文件時間
『壹』 java 查看文件創建時間
在java中沒有正式的方法來獲取文件的創建時間,但是,可以使用下面的解決方法在Windows平台上獲取文件的創建日期。
java如何獲取文件的創建日期
package com.mkyong.file;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class GetFileCreationDateExample
{
public static void main(String[] args)
{
try{
Process proc =
Runtime.getRuntime().exec("cmd /c dir c:\\logfile.log /tc");
BufferedReader br =
new BufferedReader(
new InputStreamReader(proc.getInputStream()));
String data ="";
//it's quite stupid but work
for(int i=0; i<6; i++){
data = br.readLine();
}
System.out.println("Extracted value : " + data);
//split by space
StringTokenizer st = new StringTokenizer(data);
String date = st.nextToken();//Get date
String time = st.nextToken();//Get time
System.out.println("Creation Date : " + date);
System.out.println("Creation Time : " + time);
}catch(IOException e){
e.printStackTrace();
}
}
}
結果:
Extracted value : 31/05/2010 08:05 14 logfile.log
Creation Date : 31/05/2010
Creation Time : 08:05
『貳』 java編寫程序獲取指定文件的最後修改時間
package com.xian.home2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class FileOperate {
/**
* @param args
*/
public static void main(String[] args) {
// FileOperate fo = new FileOperate();
// String filepath = "G:\\02";
// fo.getFileList(filepath);
getCreateTime();
}
public List<File> getFileList(String filepath) {
try {
File file = new File(filepath);
if (file.isDirectory()) {
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File Ifile = new File(filepath + "\\" + filelist[i]);
FileInputStream fis = new FileInputStream(Ifile);
long modifiedTime = Ifile.lastModified();
Date date=new Date(modifiedTime);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:MM");
String dd=sdf.format(date);
System.out.println("File name:" + Ifile.getName()
+ " \tFile size: "
+ (double) ((double) fis.available() / 1024 / 1024)
+ "M"+ " \tFile create Time: "+dd);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 讀取文件創建時間
*/
public static void getCreateTime(){
String filePath = "G:\\02\\123.txt";
String strTime = null;
try {
Process p = Runtime.getRuntime().exec("cmd /C dir "
+ filePath
+ "/tc" );
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
if(line.endsWith(".txt")){
strTime = line.substring(0,17);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("創建時間 " + strTime);
//輸出:創建時間 2009-08-17 10:21
}
/**
* 讀取文件修改時間的方法1
*/
@SuppressWarnings("deprecation")
public static void getModifiedTime_1(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
cal.setTimeInMillis(time);
//此處toLocalString()方法是不推薦的,但是仍可輸出
System.out.println("修改時間[1] " + cal.getTime().toLocaleString());
//輸出:修改時間[1] 2009-8-17 10:32:38
}
/**
* 讀取修改時間的方法2
*/
public static void getModifiedTime_2(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
cal.setTimeInMillis(time);
System.out.println("修改時間[2] " + formatter.format(cal.getTime()));
//輸出:修改時間[2] 2009-08-17 10:32:38
}
}
『叄』 如何用java獲取一個文件的創建時間
java沒有函數能直接拿到文件的創建時間lastModified()只能獲得最後一次修改時間
想要拿到創建時間必須依賴Windows系統的API,通過調CMD命令實現,
代碼如下:
publicstaticvoidmain(String[]args){
try{
Processp=Runtime.getRuntime().exec(
"cmd/Cdird:\test.txt/tc");
InputStreamis=p.getInputStream();
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
Stringstr;
inti=0;
while((str=br.readLine())!=null){
i++;
if(i==6){
System.out.println(str.substring(0,17));
}
}
}catch(java.io.IOExceptionexc){
exc.printStackTrace();
}
}
『肆』 JAVA怎樣實現獲取文件創建時間啊,求幫助。
Java只能讀取到文件的最後修改時間,不能獲取創建時間,
創建時間是利用了cmd命令獲取的:
publicclassFileTest{
publicstaticvoidmain(String[]args){
getCreateTime("d:\test-1.txt");
getModifiedTime("d:\test-1.txt");
}
publicstaticvoidgetCreateTime(StringfilePath){
StringstrTime=null;
try{
Processp=Runtime.getRuntime().exec("cmd/Cdir"+filePath+"/tc");
InputStreamis=p.getInputStream();
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
Stringline;
while((line=br.readLine())!=null){
if(line.endsWith(".txt")){
strTime=line.substring(0,17);
break;
}
}
}catch(IOExceptione){
e.printStackTrace();
}
System.out.println("創建時間"+strTime);
}
(StringfilePath){
longtime=newFile(filePath).lastModified();
Stringctime=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss").format(newDate(time));
System.out.println("修改時間[1]"+ctime);
}
}
『伍』 Java中如何得到文件的創建時間&最後修改時間
java中只能用java.io.File獲得文件的最後修改時間,如下:
比如我在D盤有個文件夾a,現在要獲取其創建時間:
File file = new File("D:\a");
long time = file.lastModified();//返迴文件最後修改時間,是以個long型毫秒數
String ctime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(time));
System.out.println(ctime);
想要獲得文件的創建時間,那麼只能用java去掉命令實現了,若為windows系統,想要拿到創建時間必須依賴Windows系統的API,通過調CMD命令實現,代碼如下:
publicstaticvoidmain(String[]args){
try{
Processp=Runtime.getRuntime().exec("cmd/Cdird:\test.txt/tc");
InputStreamis=p.getInputStream();
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
Stringstr;
inti=0;
while((str=br.readLine())!=null){
i++;
if(i==6){
System.out.println(str.substring(0,17));
}
}
}catch(java.io.IOExceptionexc){
exc.printStackTrace();
}
}
『陸』 java怎麼獲取文件的創建時間,最後訪問時間
假如你的jdk環境可以在1.7或之上,推薦你用nio包下的一個對象
代碼如下:
Pathp=Paths.get("C:/1.txt")
try{
BasicFileAttributesatt=Files.readAttributes(p,BasicFileAttributes.class);//獲取文件的屬性
att.creationTime().toMillis();
att.lastAccessTime().toMillis();
att.lastModifiedTime().toMillis();
}catch(IOExceptione1){
e1.printStackTrace();
}
//如各個方法名稱顯示的,你研究下吧