我们如何使用搜索 ant 中特定目录下的文件



嗨,这是我检查是否存在特定文件的代码,例如 ${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"文件夹不存在,则意味着文件不存在搜索目录中的任何地方...我希望这能把一切都说清楚

相关内容

  • 没有找到相关文章

最新更新