JAVA读取文件的创建时间和修改时间

阅读更多

系统中存在一个文件test.txt,其属性如下:

 

 

下面就给出对这个文件的创建时间修改时间 读取的代码。

 

在jdk中,File的操作并没有取得文件创建时间的方法。唯一提供提供的方法是lastModified()返回long值。牺牲创建时间的方法实在是为了满足跨平台的需要。但在windows环境中,需要取得文件创建时间的情况是存在的。

实现的办法是通过windows本地命令行来取得创建日期。以下代码主要参照http://forum.java.sun.com/thread.jspa?threadID=311281&messageID=1247450

/*

 * 著作権: Copyright (c) 2006

 * 会社名:

 * 更新履歴:

 *   2007/01/29 14:21:23 1.0.0 徐小慧 新規作成

 */

import java.io.BufferedReader;

import java.io.File;

import java.io.InputStreamReader;

import java.util.StringTokenizer;

/**

 * Fileの時間を取得用クラス

 *

 * @author 徐小慧

 * @version 1.0.0 $Id: Timetake 12254 2007-08-16 04:35:16Z

 *          xuxh $

 * @since R1.0.0

 */

public class Timetake {

    /**

     * Fileの時間

     * @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);

 

 

你可能感兴趣的:(JAVA读取文件的创建时间和修改时间)