首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我有没有办法检查Ant中是否存在目录(而不是文件)?

我有没有办法检查Ant中是否存在目录(而不是文件)?
EN

Stack Overflow用户
提问于 2009-07-22 09:03:58
回答 3查看 84.3K关注 0票数 73

如何使用Ant检查文件夹是否存在?

我们可以检查文件的存在,但是我们也可以对文件夹做同样的事情吗?

EN

回答 3

Stack Overflow用户

发布于 2013-06-14 18:07:18

这是我的解决方案,它不需要设置属性和使用带有'if‘或’除非‘的目标:

宏:

代码语言:javascript
复制
<macrodef name="assertDirAvailable">
    <attribute name="dir" />
    <sequential>
        <fail message="The directory '@{dir}' was expected to be available but is not">
            <condition>
                <not>
                    <available file="@{dir}" type="dir" />
                </not>
            </condition>
        </fail>
    </sequential>
</macrodef>

用法:

代码语言:javascript
复制
<assertDirAvailable dir="${dirToCheck}" />
票数 9
EN

Stack Overflow用户

发布于 2015-11-27 05:21:26

这是另一种方法,允许在不使用ant-contri.jar的情况下只调用一个任务。

代码语言:javascript
复制
<target name="my-task" depends="dir-check">
    <antcall target="my-task-install"/>
    <antcall target="my-task-update"/>
</target>
<target name="my-task-install" unless="dir.exists" >
    {some task}
</target>
<target name="my-task-update" if="dir.exists" >
    {another task}
</target>
<target name="dir-check">
    <condition property="dir.exists">
        <available file="my-dir" type="dir" />
    </condition>
</target>
票数 0
EN

Stack Overflow用户

发布于 2019-10-18 19:46:31

这是另一个涉及for循环的例子。如果目录不存在,则失败。

代码语言:javascript
复制
<for list="dir1/, dir2/, dir3/" param="local.dir" >
    <sequential>
        <fail message="Directory @{local.dir} does not exist">
            <condition>
                <not>
                    <available file="@{local.dir}" type="dir" />
                </not>
            </condition>
        </fail>             
    </sequential>
</for>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1163998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档