2011-11-23 82 views
3

嗨,是否有任何機構知道如何從FTP下載最新的文件夾。我有Evolvenet_20111112.1 Evolvenet_20111113.1 這樣的文件夾,我必須下載最新的文件夾。任何人都可以幫助我舉一個例子。如何從ftp下載最新的文件夾

在此先感謝, Bhasker。


Ftp列表不起作用,因爲我的構建文件夾位於\ build \ Evolvenet 2010 \中。登錄到ftp服務器後,列表將採用默認文件夾。有什麼方法可以指定轉到該文件夾​​和列表。

謝謝, Bhasker。

+0

關於如何列出顯式文件夾,我已經更新了我的答案。 – sudocode

回答

5

我想你需要做的是把它分解成以下步驟:從上市

  • 排序
  • 提取的文件名與FTP

    1. 清單中的相關文件的文件名
    2. 從排序列表中獲取第一個或最後一個文件名
    3. 使用FTP獲取該文件

    由於您的文件是使用yyyyMMdd.<version>模式命名的,因此只需按名稱對文件進行排序即可按日期順序進行排序。

    步驟1:列表中的文件是這樣的

    <ftp action="list" 
        server="${server}" userid="${user}" 
        password="${password}" listing="list.txt"> 
        <fileset> 
        <include name="Evolvenet_*"/> 
        </fileset> 
    </ftp> 
    

    步驟2-4:提取自上市最新的文件

    <loadresource property="newest.file"> 
        <concat> 
        <fileset file="list.txt"/> 
        </concat> 
        <filterchain> 
        <tokenfilter> 
         <replaceregex pattern=".*(Evolvenet_.*)" replace="\1"/> 
        </tokenfilter> 
        <sortfilter reverse="true"/> 
        <headfilter lines="1"/> 
        </filterchain> 
    </loadresource> 
    
    <echo message="newest.file ${newest.file}"/> 
    

    步驟5:獲取文件與FTP

    <ftp action="get" 
        server="${server}" userid="${user}" 
        password="${password}"> 
        <fileset dir="download"> 
        <include name="${newest.file}"/> 
        </fileset> 
    </ftp> 
    

    我已經回答好像Evolvenet_ *是文件,但我注意到你說他們是目錄。我認爲所有需要改變下載目錄在FTP中有條款得到:

    <include name="${newest.file}/**"/> 
    

    要列出某個目錄(而不是用戶的登錄目錄)的內容,使用的的dir屬性文件集來指定遠程目錄,例如

    <fileset dir="/build/Evolvenet 2010"> 
        <include name="*"/> 
        </fileset> 
    
  • +0

    非常感謝你的幫助。我會試試這個,讓你知道。 – bhasker

    +0

    非常感謝你:-)。 – bhasker

    +0

    @bhasker - [Accepting](http://meta.stackexchange.com/a/5235)和/或投票回答是最合適的感謝形式。 – sudocode

    0

    看看這裏:ftp task

    現在沒有具體的我們不能有太大的幫助。關於您要選擇的文件:

    <ftp action="get" 
         server="ftp.hypthetical.fr" 
         userid="anonymous" 
         password="[email protected]" 
         defaultDateFormatConfig="d MMM yyyy" 
         recentDateFormatConfig="d MMM HH:mm" 
         serverLanguageCodeConfig="fr"> 
        <fileset dir="htdocs/manual"> 
         <include name="**/*.html"/> 
        </fileset> 
        </ftp> 
    

    從手冊中。您可以提供可以自定義的文件集。