为了账号安全,请及时绑定邮箱和手机立即绑定

用Java确定文件创建日期

用Java确定文件创建日期

守着一只汪 2019-08-02 16:34:09
用Java确定文件创建日期在StackOverflow上还有另一个类似的问题(如何在Java中获取文件的创建日期),但答案并不是真的存在,因为OP有不同的需求可以通过其他机制解决。我正在尝试创建一个目录中的文件列表,可以按年龄排序,因此需要文件创建日期。经过大量的网络搜寻,我没有找到任何好办法。是否有获取文件创建日期的机制?BTW,目前在Windows系统上,也可能需要它在Linux系统上工作。此外,我不能保证在名称中嵌入创建日期/时间的情况下将遵循文件命名约定。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

只要文件系统提供,Java nio就可以选择访问creationTime和其他元数据。检查此链接了


例如(根据@ ydaetskcoR的评论提供):


Path file = ...;

BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);


System.out.println("creationTime: " + attr.creationTime());

System.out.println("lastAccessTime: " + attr.lastAccessTime());

System.out.println("lastModifiedTime: " + attr.lastModifiedTime());


查看完整回答
反对 回复 2019-08-02
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

作为这个问题的后续 - 因为它与创建时间有关,并讨论通过新的nio类获得它 - 现在看来JDK7的实现中你运气不好。附录:OpenJDK7中的行为相同。

在Unix文件系统上,您无法检索创建时间戳,只需获取上次修改时间的副本即可。太伤心了,但不幸的是真的。我不确定为什么会这样,但代码具体如此,如下所示。

import java.io.IOException;import java.nio.file.*;import java.nio.file.attribute.*;public class TestFA {
  static void getAttributes(String pathStr) throws IOException {
    Path p = Paths.get(pathStr);
    BasicFileAttributes view       = Files.getFileAttributeView(p, BasicFileAttributeView.class)
              .readAttributes();
    System.out.println(view.creationTime()+" is the same as "+view.lastModifiedTime());
  }
  public static void main(String[] args) throws IOException {
    for (String s : args) {
        getAttributes(s);
    }
  }}


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 1350 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号