Удалить все файлы и папки с помощью задачи Ant FTP

#ant #ftp

#ant #ftp

Вопрос:

Как удалить все файлы и папки внутри указанной удаленной папки в Ant?

Я пробовал следующее:

 <ftp server="${ftp.host}" userid="${ftp.user}"
             password="${ftp.pass}" remotedir="${ftp.remotedir}" action="del">
    <fileset>
        <include name="**/*"/>
    </fileset>
</ftp>
  

он удаляет все файлы, но не папки.
(если я напишу здесь <включить имя=»*.txt»>, вместо этого все будет работать как ожидалось — удаляются все текстовые файлы, но что, если я захочу удалить все файлы и папки?)

Ответ №1:

Вы должны использовать другую команду: rmdir .
Эта команда не удаляет папку, указанную в remotedir параметре.
Пример, основанный на информации из ant.apache.org:

   <ftp action="rmdir"
       server="${ftp.host}"
       userid="${ftp.user}"
       password="${ftp.pass}"
       remotedir="${ftp.parentdir_for_remotedir}" >
    <fileset>
      <include name="${ftp.remotedir}/**"/>
    </fileset>
  </ftp>
  

Цитата с сайта:

Каталог, указанный в параметре remotedir, никогда не выбирается для удаления, поэтому, если вам нужно удалить его, укажите его родительский элемент в параметре remotedir и включите его в шаблон, например «somedir/**».

Также стоит отметить, что rmdir произойдет сбой, если в fileset указанных папках есть что угодно, кроме пустых.

С того же сайта:

В качестве примера предположим, что вы хотите удалить все, что содержится в /somedir, поэтому сначала вызовите задачу с помощью action=»delete», затем с помощью action=»rmdir» …