Как скачать последнюю папку с ftp - PullRequest
3 голосов
/ 23 ноября 2011

Привет, кто-нибудь знает, как загрузить последнюю папку с FTP. У меня есть папки, такие как Evolvenet_20111112.1 Evolvenet_20111113.1 из этого я должен загрузить последнюю папку. Может ли кто-нибудь, пожалуйста, помогите мне с примером.

Спасибо заранее, Bhasker.


Ftp-листинг не работает, потому что мои папки для сборки были в \ build \ Evolvenet 2010 \. Перечисление будет принимать папку по умолчанию после входа на FTP-сервер. Есть ли способ указать, чтобы перейти в эту папку и список.

Спасибо, Bhasker.

Ответы [ 2 ]

5 голосов
/ 24 ноября 2011

Я думаю, что вам нужно будет разбить его на шаги:

  1. Вывести список соответствующих файлов с помощью FTP
  2. Извлечь имена файлов из списка
  3. Сортировка имен файлов
  4. Возьмите первое или последнее имя файла из отсортированного списка
  5. Получить этот файл с помощью 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_ * были файлы, но я заметил, что вы говорите, что они каталоги.Я думаю, что все, что нужно изменить, чтобы загрузить каталог, это предложение include в FTP get:

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

Чтобы вывести содержимое определенного каталога (а не каталога входа пользователя), используя dir атрибут набора файлов для указания удаленного каталога, например

  <fileset dir="/build/Evolvenet 2010">
    <include name="*"/>
  </fileset>
0 голосов
/ 24 ноября 2011

Посмотрите здесь: 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>

Из руководства.Вы можете предоставить набор файлов, который вы можете настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...