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> 
    

    从手册中。您可以提供可以自定义的文件集。