gpt4 book ai didi

java - 如何在 Ant 目标中使用文件大小

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:29 25 4
gpt4 key购买 nike

我目前正在用 Ant 构建脚本替换我的自制构建脚本。

现在我需要用特定文件的大小替换各种标记。我知道如何通过 <length> 获取字节大小任务并存储在一个属性中,但我也需要以千字节和兆字节为单位的大小。

我如何访问其他表示形式(KB、MB)的文件大小或从 Ant 目标中计算这些值并将它们存储在属性中?

编辑 在我发现 <script> 之后任务,使用一些 JavaScript 计算其他值并使用 project.setNewProperty("foo", "bar"); 向项目添加新属性相当容易。 .

最佳答案

我使用 <script> task 找到了不需要任何第三方库或自定义任务的解决方案允许在 Ant 目标中使用 JavaScript(或任何其他 Apache BSFJSR 223 支持的语言)。

<target name="insert-filesize">
<length file="${afile}" property="fs.length.bytes" />

<script language="javascript">
<![CDATA[
var length_bytes = project.getProperty("fs.length.bytes");
var length_kbytes = Math.round((length_bytes / 1024) * Math.pow(10,2))
/ Math.pow(10,2);
var length_mbytes = Math.round((length_kbytes / 1024) * Math.pow(10,2))
/ Math.pow(10,2);
project.setNewProperty("fs.length.kb", length_kbytes);
project.setNewProperty("fs.length.mb", length_mbytes);
]]>
</script>

<copy todir="${target.dir}">
<fileset dir="${source.dir}">
<include name="**/*" />
<exclude name="**/*.zip" />
</fileset>
<filterset begintoken="$$$$" endtoken="$$$$">
<filter token="SIZEBYTES" value="${fs.length.bytes}"/>
<filter token="SIZEKILOBYTES" value="${fs.length.kb}"/>
<filter token="SIZEMEGABYTES" value="${fs.length.mb}"/>
</filterset>
</copy>
</target>

关于java - 如何在 Ant 目标中使用文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com