08-08
30

JAVA获取文件创建时间

在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);


[本日志由 blurxx 于 2008-08-30 02:50 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 创建时间 获取
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1906
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭