大家好,这是我的代码,用于检查特定文件是否存在,例如${file}=license
<target name="File.check" >
<condition property="File.exists" >
<available file="${File}" type="file" />
</condition>
虽然如果存在的文件是完全许可证,它可以正常工作但有时文件可以是license.txt,甚至也可以是大写。
所以我希望我的上述代码在所有条件下工作,即使该文件是License或LICENSE或许可证或LICENSE.txt或以l或L开头的任何内容。
答案 0 :(得分:1)
包含所有可能的变体可能最容易,因为file attribute需要一个真实的文件,并且不允许使用通配符:
<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>
另一种可能性是write your own condition。
答案 1 :(得分:1)
您可以使用Contains条件来检查${file}
是否包含文本&#34; license&#34;。它甚至有一个casesensitive
参数。不确定是否
以l或L
开头的任何内容
虽然是一个好主意。
答案 2 :(得分:0)
<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"
文件夹不存在文件不存在于您的搜索目录中...我希望这能使一切清晰