嗨,这是我检查是否存在特定文件的代码,例如 ${file}=license
<target name="File.check" >
<condition property="File.exists" >
<available file="${File}" type="file" />
</condition>
虽然如果存在的文件完全是许可证,它可以正常工作,但有时文件可以是许可证.txt甚至可以是大写的。
所以我希望我的上述代码在所有条件下都能工作,即使文件是许可证或许可证或许可证或许可证.txt或任何以 l 或 L 开头的内容。
包含所有可能的变体可能是最简单的,因为 file 属性需要一个真实的文件并且不允许通配符:
<condition property="File.exists" >
<or>
<available file="license.txt" type="file" />
<available file="LICENSE.txt" type="file" />
<available file="license" type="file" />
<available file="LICENSE" type="file" />
</or>
</condition>
另一种可能性是编写自己的条件。
"包含"条件来检查${file}
是否包含文本"许可证"。它甚至有一个casesensitive
论点。不确定是否
任何以 L 或 L 开头的内容
不过是个好主意。
<target name="SearchForfile">
<delete dir="../filepresent" />
<copy todir="../filepresent" failonerror="yes" flatten="true">
<fileset dir="../result/unzip/${param1}" casesensitive="false">
<include name="**/*license*"/>
</fileset>
</copy>
<antcall target="CheckFileExistance"/>
</target>
在该"CheckFileExistance"
目标中,只需检查"filepresent"
文件夹是否存在,如果存在,则该文件存在于您的源目录中,否则如果"filepresent"
文件夹不存在,则意味着文件不存在搜索目录中的任何地方...我希望这能把一切都说清楚