使用ANT从URL获取以特定单词开头的所有文件

时间:2016-09-07 19:52:23

标签: java url ant

我使用以下任务从URL获取特定文件并将其安装在我的本地DIR上:

<project name="MobileBanking" basedir="../">
    <target name="get">
        <get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/trace.log" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>
    </target>
</project>

然而,问题是我有多个以word&#34; trace&#34;开头的文件。我需要将它们全部放到我的本地目录中。

我尝试过以下方法:

<get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/trace*" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>

<get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/*" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>

但没有效果。

我应该使用什么来获取所有以word&#34; trace&#34;开头的文件?来自网址?

1 个答案:

答案 0 :(得分:1)

我不认为URL是可行的。 get任务从任何 URL检索文件。为了支持基于模式的URL输入形式,例如basePath/trace*.html,任务应查询URL basePath并解析页面的内容HTML以确定此路径中的HTML页面列表,这是一件很繁琐的事情(如果可能的话,首先参见How to get list of files/directories of an directory url in java?)。尝试获取基本URL的内容,解析其结果,看看是否可以获取所有trace*文件的列表(这可能是一个解决方案,但它非常难看)。

您可以查看ftpscp任务等替代方案,这些方案支持具有filesetinclude通配符模式的嵌套exclude资源。与get任务不同,ftp基于FTP协议工作,该协议允许获取远程目录中的文件列表。但是,这需要FTP服务器或SSH守护程序等服务。