2012-05-15 84 views
0

大家好,這是我的代碼,用於檢查是否存在特定的文件,例如, ${file}=license我們如何使用在螞蟻的特定目錄下搜索文件

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

但如果本文件究竟許可它工作正常,但有時該文件可以是LICENSE.TXT甚至大寫也。

所以我希望我上面的代碼中所有的條件下工作,即使該文件是用L或L.啓動許可證或執照或許可證或LICENSE.TXT或任何

回答

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"目錄不存在那意味着文件不被任何在您的搜索展示目錄...我希望這使得一切都清除

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

+0

我認爲更好的方法是使用正則表達式並將文件複製到某個文件夾,但該文件夾應該創建iff文件,每次只需檢查此文件夾是否存在這對我來說是奇蹟..我希望它可以幫助你 – user1387014

+0

@ user1387014如果你有更好的解決方案,請張貼這個答案(所有t他細節!)爲未來的訪客。你以後可以接受這個答案 – oers

1

您可以使用Contains條件來檢查${file}是否包含文本「license」。它甚至有一個casesensitive的說法。不知道是否

任何以L開頭或L

是一個好主意,但。