Ant 获取文件创建时间戳

标签 ant

我正在为 OpenCMS 项目编写一个 manifest.xml 文件。

我需要能够调出文件的创建日期和文件的最后修改日期。 (尽管当前进程为每个文件提供了 1969 年 12 月 31 日星期三 19:00:00 EST 的时间戳——至少在 Windows 机器上运行构建时是这样。)

有没有办法在 Ant 中提取文件的创建日期时间戳?我正在使用标准的 Ant 任务和 Ant-Contrib 任务。

最佳答案

我已经开始工作了。

作为Mark O'Connor指出,您无法从早期版本的 Java 中获取文件创建时间。但是,用于此任务的原始 Java 程序使用了 lastModified。创建日期和最后修改日期1 的方法。我做同样的事情很好。

我创建了一个 <scriptdef>从文件中提取上次修改日期。在 Java 1.6 及更高版本中,您可以直接访问 Rhino JavaScript 库,因此不再需要 BeanShell 库。

<scriptdef name="file.mdate" language="javascript"> 
    <attribute name="file"/> 
    <attribute name="property"/> 
        file_name = attributes.get("file"); 
        property_to_set = attributes.get("property");

        file = new java.io.File(file_name); 
        file_date = file.lastModified();

        date_format = new java.text.SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss zzz");
        formated_date = date_format.format(new java.util.Date(file_date));
        project.setNewProperty(property_to_set, formated_date);
</scriptdef> 

定义后,我可以将其用作 Ant 任务:

<file.mdate
    file="${file.name}"
    property="file.modified.date"/>
<echo>The file "${file}" was modified on ${file.modified.date}</echo>

关于Ant 获取文件创建时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14714228/

相关文章:

android - Apache Cordova 和 PhoneGap 有什么区别?

ant - 从 Gradle 调用 Ant Macrodef

Java 构建;有了这些要求,什么是好的选择?

java - macrodef 上的 Ant 'unless'

java - Ant 在 Java 工作区中构建 ArrayIndexOutOfBoundsException

java - 如何复制ant运行后创建的文件

eclipse - 在 Eclipse 中将 "exploded"文件夹部署到 Tomcat

Ant 目标调用

ant - 在 javac Ant 任务中禁用增量编译

intellij-idea - intellij hybris 类重新编译不起作用