在UNIX系统上从Java创建文件日期的最佳方法?

时间:2011-04-19 15:54:26

标签: java macos file unix time

java.io.File没有提供获取文件创建日期的方法。您可以获取file.lastModified,但不能获取dateCreated。

Java 7添加了优秀的java.nio.file包,可以访问创建的日期,但它还没有出来。

我的问题:在UNIX / OSX系统上从Java创建文件日期的最佳方法是什么?我想它正在执行一个shell脚本,但我的命令行技能非常弱。因此,如果shell脚本是要走的路,如果你能提供一个完整的例子,我将非常感激。

谢谢!

4 个答案:

答案 0 :(得分:2)

Unix没有“创建日期”。存储在文件上的唯一日期是修改日期,它存储文件内容更改的时间;访问日期,存储上次读取文件的时间;和“更改日期”,它存储文件元数据最后一次更改的时间。 (元数据包含权限位,所有权等内容。)

如果您查看stat(2)API支持的结构,您可以看到三个timespec。

答案 1 :(得分:2)

从命令行,获取创建日期的最简单方法是使用mdls。我想你想做/usr/bin/mdls -name kMDItemFSCreationDate $filename(其中$filename是你要问的文件)。您可以指定多个文件名,但这可能会使解析输出变得更加困难。

答案 2 :(得分:0)

你不能 - 它不存储在任何地方

答案 3 :(得分:0)

它实际上取决于文件系统,并且大多数文件系统不提供存储文件“生成时间”等功能。您需要检查文件系统。