0

大家好,这是我用于检查特定文件是否存在的代码,例如${file}=license

<target name="File.check" >
   <condition property="File.exists" >
      <available file="${File}" type="file" />
    </condition>

尽管如果存在的文件完全是许可证,它可以正常工作,但有时该文件可以是 license.txt 甚至是大写的。

所以我希望我上面的代码在所有条件下都能工作,即使文件是许可证或许可证或许可证或 LICENSE.txt 或任何以 l 或 L 开头的东西。

4

3 回答 3

1

包含所有可能的变体可能是最简单的,因为文件属性需要一个真实的文件并且不允许使用通配符:

 <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>

另一种可能性是写你自己的条件

于 2012-05-15T13:20:11.037 回答
1

您可以使用包含条件来检查是否${file}包含文本“许可证”。它甚至有一个casesensitive论点。不确定是否

任何以 l 或 L 开头的东西

不过是个好主意。

于 2012-05-15T15:55:03.460 回答
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"文件夹不存在则意味着文件不存在于您的搜索目录中的任何位置...我希望这一切都清楚

于 2012-05-21T09:59:52.873 回答