我尝试在处理之前检查文件是否为空,所有这些都来自我的ANT任务。
基本上我有以下目标由另一个主目标调用,我有其他目标在此之后被调用,我想运行这个目标:
<target name="mytarget">
<!-- Copy a file -->
<get verbose="true" ignoreerrors="no"
src="..."
dest="bla.txt" />
<property name="file.bla" value="bla.txt" />
<!-- Check if the file is empty -->
<script language="javascript"> <![CDATA[
importClass(java.io.File);
file = project.getProperty("file.bla");
var filedesc = new File(file);
var size = filedesc.size;
if (size==0){
//? Exit the target cleanly
}
]]> </script>
<!-- If the file is not empty, process it with ANT. -->
<!-- ... ->
</target>
答案 0 :(得分:2)
所以我设法做了我想要的,这是检查文件大小和运行其他东西的基本示例,具体取决于大小。
<target name="check.log.file">
<get src="bla/problems.txt" dest="${temp.dir}\bla.txt" />
<property name="file" value="${temp.dir}\bla.txt" />
<condition property="file.is.empty">
<length file="${file}" when="equal" length="0" />
</condition>
<antcall target="target.to.process.the.log.file"/>
</target>
现在,在另一个目标中,依赖于您的条件的目标只需添加:
<target name="target.to.process.the.log.file" unless="file.is.empty">
<!-- whatever you do -->
</target>
那是所有人。