【问题标题】:Getting date/time of creation of a file获取文件创建的日期/时间
【发布时间】:2011-10-16 15:34:40
【问题描述】:

这似乎是一个非常简单的问题,但我无法在网上任何地方找到明确的答案。如何通过 Java 的文件管理器获取文件创建的日期/时间?除了文件名之外,我还能从文件的“属性”中获得什么?

【问题讨论】:

标签: java file date properties


【解决方案1】:

我不确定您如何使用 Java 6 及更低版本获得它。使用 Java 7 的新文件系统 API,它看起来像这样:

Path path = ... // the path to the file
BasicFileAttributes attributes = 
    Files.readAttributes(path, BasicFileAttributes.class);
FileTime creationTime = attributes.creationTime();

正如 CoolBeans 所说,并非所有文件系统都存储创建时间。 BasicFileAttributes Javadoc 声明:

如果文件系统实现不支持时间戳来指示文件的创建时间,则此方法返回特定于实现的默认值,通常是最后修改时间或表示纪元的 FileTime (1970-01 -01T00:00:00Z)。

【讨论】:

  • 嗯,我想我会接受 jt 的回答。这对我有用。
  • 返回这样的默认值似乎很可怕。谁创建了这个 API?他们的理由是什么?
  • @bblfish:在我看来,为创建时间之类的东西返回默认值并没有太大的潜在危害。它简化了 API,并允许使用属性的代码将所有 BasicFileAttributes 视为相同,而不必担心底层文件系统是否不支持某个特定属性。
  • 有没有非 nio 的方式来获取创建时间?
  • @KMP:您也许可以调用像stat 这样的系统函数,但不行,不能使用File API。
猜你喜欢
  • 1970-01-01
  • 2015-09-01
  • 2017-12-16
  • 2010-09-19
  • 1970-01-01
  • 2013-01-28
  • 2016-12-09
  • 2011-11-29
  • 1970-01-01
相关资源
最近更新 更多