加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Java 获得File文件的创建时间(Windows)

(2011-11-08 10:04:36)
标签:

杂谈

分类: Android技术

在File的方法中,只能直接获取文件的最后修改日期,而且是以ms作为计量单位的,没有直接获取文件创建日期的方法,那是不是意味着JAVA不能获取文件的创建时间呢,答案是否定的,作为全球用使用人数最多的编程语言JAVA,完全可以获取我们所需要的任何信息,下面就是JAVA获取文件创建日期的代码:

import java.io.*;

public class getCreateFileTime {
  public static void main(String[] args) {
    try {
      Process p = Runtime.getRuntime().exec("cmd /C dir D:\\test.txt /tc");

      InputStream is = p.getInputStream();
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      String result;
      String getTime = null;
      while ((result = br.readLine()) != null) {
        String[] str = result.split(" ");
        for (int i = str.length - 1; i >= 0; i--) {
          if (str[i].equals("test.txt")) {
            getTime = str[0] + " " + str[2];
          }
        }
      }
      System.out.println("test.txt 文件的创建日期是:" + getTime);
    } catch (java.io.IOException exc) {
      exc.printStackTrace();
    }
  }
}

 

 

Java7的新特性方法:

package com.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;

public class GetFileCreateTime {
    
    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;
        }
    }
    public static int getDaysBetweenDate(Date d1, Date d2){
        int days;
        days = (int) ((d1.getTime() - d2.getTime())/(24*60*60*1000));
        return days;
    }
    public static void main(String[] args){
        //指定文件
        File file = new File("D://安装工具//aalf.dat");
        //获取创建日期
        String time = GetFileCreateTime.getFileCreateDate(file);
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-ddhh:mm");
        Date date = null;
        try {
                        date = d.parse(time);
                } catch (ParseException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        //打印时间间隔
        System.out.println(getDaysBetweenDate(new Date(), date));
    }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有