检查Phing中是否存在目录并提示继续?

时间:2012-08-20 03:42:54

标签: php phing

我正在尝试检查Phing中是否存在目录或文件,但我甚至无法使用基础知识。

例如:

<project name="test" default="help" basedir="./">

<target name="clean" description="Deletes directory">

    <available file="/testy" type="dir" property="dir.Exists" />

        <if>
            <isset property="dir.Exists"/>
                <then>
                    <echo>Yep</echo>
                </then> 
        </if>

</target>

<phingcall target="clean" />

</project>

我得到一个奇怪的错误:

Error reading project file [wrapped: \build.xml:22:18: Error initializing nested  
element <echo> [wrapped: phing.tasks.system.IfTask doesn't support the 'echo' 
creator/adder.]]

最终,如果目录存在,我想添加一个条件是/否来继续。

PS。该错误与“嵌套元素回显”无关,据我所知,因为如果我删除回显它仍然发送相同的错误,实际上我认为这是一个默认语法相关的错误消息或其他。

1 个答案:

答案 0 :(得分:9)

如果您只需删除目录,则只需在其上调用delete即可。 Phing将自动检查您是否存在,因此您无需进行检查:

<target name="clean">
    <delete
      dir="${project.basedir}/${source.directory}" quiet='true'
    />
</target>

这里重要的删除属性是: Phing Delete Attributes

以下在我的系统中运行良好:

<target name='test'>
  <if>
    <available file='results' type='dir' />
    <then>
      <echo>Yep</echo>
    </then>
  </if>
</target>

所以我在想你使用AvailableTask的方式是不正确的。