嗨,有没有人知道如何从FTP下载最新的文件夹。我有像Evolvenet_20111112.1这样的文件夹 Evolvenet_20111113.1 从这里我必须下载最新的文件夹。任何人都可以帮我一个例子。
提前致谢, Bhasker。
Ftp列表无效,因为我的构建文件夹位于\ build \ Evolvenet 2010 \中。登录到ftp服务器后,列表将采用默认文件夹。有没有办法指定转到该文件夹和列表。
谢谢, Bhasker。
答案 0 :(得分:5)
我认为您需要做的就是将其分解为步骤:
由于您的文件是使用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 get中的include子句:
<include name="${newest.file}/**"/>
列出某个目录(而不是用户的登录目录)的内容,使用文件集的dir
属性指定远程目录,例如
<fileset dir="/build/Evolvenet 2010">
<include name="*"/>
</fileset>
答案 1 :(得分:0)
看看这里:ftp task。
现在没有具体说明,我们无法提供太多帮助。关于要选择的文件:
<ftp action="get"
server="ftp.hypthetical.fr"
userid="anonymous"
password="me@myorg.com"
defaultDateFormatConfig="d MMM yyyy"
recentDateFormatConfig="d MMM HH:mm"
serverLanguageCodeConfig="fr">
<fileset dir="htdocs/manual">
<include name="**/*.html"/>
</fileset>
</ftp>
从手册中。您可以提供可以自定义的文件集。