ant - 如果文件夹不存在,如何获得零资源计数

ant - how to get a zero resource count if the folder does not exist

我正在尝试根据文件夹是否包含内容来执行任务,而不是根据它是否仅仅存在。我知道可能有一个冗长的解决方案,是否有我缺少的更好的解决方案?

我尝试了两种不同的方法来设置 属性 取决于文件夹中是否有文件。

我的理解是 'available' 不允许像这样的通配符:

  <available property="has.test.data" file="${test.data.dir}/**" type="file"/>

我试过了,但如果文件夹 (test.data.dir) 不存在,它就不起作用:

  <fileset id="test.data.files" dir="${test.data.dir}" includes="**/*" />
  <condition property="has.test.data">
    <resourcecount when="greater" count="0"> <fileset refid="test.data.files" /> </resourcecount>
  </condition>

理想情况下,我想根据文件夹是否确实有内容来执行任务,而不仅仅是一个空文件夹。

您可以使用 erroronmissingdir="false",以避免 non-existing 目录的错误。如果您需要 属性 始终存在

,请添加 else="false"
<?xml version="1.0" encoding="utf-8"?>
<project name="Test resourcecount" xmlns:if="ant:if">

  <fileset id="test.data.files" dir="${test.data.dir}" includes="**/*" erroronmissingdir="false"/>
  <condition property="has.test.data" else="false">
    <resourcecount when="greater" count="0"> <fileset refid="test.data.files" /> </resourcecount>
  </condition>

  <echo if:true="${has.test.data}">${test.data.dir} is exists and is not empty</echo>


</project>

相关Ant: How can I ignore build error if directory doesn't exist?