我必须搜索给定的字符串" OK"从文件索引_ * .xml。此*是随机生成的Id。此文件在每15秒后生成
这是我到目前为止所做的,但我得到的例外是#34;文件匹配':patternSet {包含:[索引_ * .xml]的非法值排除:[]}"
<?xml version="1.0" encoding="UTF-8"?>
<project name="StringSearch" default="wait-for-some-time" basedir=".">
<patternset id="filematch">
<include name="Index_*.xml"/>
</patternset>
<target name="wait-for-some-time">
<waitfor maxwait="15" maxwaitunit="second" timeoutproperty="notfound">
<resourcecontains refid="filematch" substring="OK" />
</waitfor>
<antcall target="success" />
</target>
<target name="success" depends="fail" unless="notfound">
<echo message="String OK found" />
</target>
<target name="fail" if="notfound">
<echo message="String not found" />
</target>
</project>
这里有什么错误的建议,如果不可行,可能是另一种方法。 感谢
新代码: 使用这个
<path id="pathtoIndexfile">
<fileset dir="${destination.dir}">
<include name="Index_*.xml"/>
</fileset>
</path>
<target name="wait-for-some-time">
<echo>${destination.dir}</echo>
<waitfor maxwait="1" maxwaitunit="minute" timeoutproperty="notfound">
<resourcecontains refid="pathtoIndexfile" substring="OK" />
</waitfor>
<antcall target="success" />
</target>
1)异常是&#34; java.lang.ClassCastException:org.apache.tools.ant.types.Path无法强制转换为org.apache.tools.ant.types.Resource&#34;。
2)对于fileSet,异常是&#34; java.lang.ClassCastException:org.apache.tools.ant.types.FileSet无法强制转换为org.apache.tools.ant.types.Resource&#34;
我错过了一些罐子吗?
答案 0 :(得分:0)
我通过以下两个步骤实现了解决方案:
我的即兴代码,用于搜索字符串&#34; OK&#34;是
<target name="StringSearch">
<sleep seconds="10"/>
<copy tofile="${destination.dir}/output.xml">
<fileset dir="${destination.dir}">
<include name="Index_*.xml"/>
</fileset>
</copy>
<sleep seconds="10"/>
<echo>destination.dir is: ${destination.dir}</echo>
<loadfile property="OK.exists" srcfile="${destination.dir}/output.xml">
<filterchain>
<linecontainsregexp>
<regexp pattern="OK"/>
</linecontainsregexp>
</filterchain>
</loadfile>
<echo>OK exists: ${OK.exists}</echo>
</target>