Как создать файл в распределенной системе, используя ant-скрипт? - PullRequest
0 голосов
/ 26 мая 2011

я работаю с mqfte.Мне нужно создать пустой TXT-файл с тем же именем, что и исходный файл после его передачи в пункт назначения.Как это сделать с помощью скрипта ant?

Сценарий:

Srcpath: \ src \ test.dat destpath: \ dest \ test.dat

После перемещения файла изпуть src, мне нужно создать пустой файл test.dat в пути src, используя скрипт ant?как это можно сделать?

1 Ответ

1 голос
/ 26 мая 2011

Перед передачей файлов вы можете использовать задачу Touch , чтобы создать новые пустые файлы, соответствующие тем, которые вы будете передавать (повторно использовать тот же набор файлов) во временном каталоге.После завершения передачи вы можете использовать задачу Move , чтобы скопировать пустые файлы в каталог src.Вы можете использовать overwrite = "false" в задаче Move, чтобы гарантировать, что файлы, оставшиеся в каталоге src, не будут заменены (например, если вы хотите, чтобы пустые файлы были только для успешных передач).

ЗдесьЭто пример.

<project default="test">

  <target name="test">

    <touch>
      <fileset dir="src">
        <include name="test*"/>
      </fileset>
      <mapper type="regexp" from="(.*)" to="tmp/\1"/>
    </touch>

    <move todir="dest">
      <fileset dir="src">
        <include name="test*"/>
        <!-- simulate file not transferred -->
        <exclude name="test.doc"/>
      </fileset>
      <globmapper from="test.*" to="result_*.txt"/>
    </move>


    <move todir="src" overwrite="false">
      <fileset dir="tmp"/>
    </move>

  </target>

</project>

Первый ход заменяет ваш перевод.Один файл (test.doc) не перемещен из каталога src (имитировать неудачную передачу).Вы можете проверить создание файлов с некоторым содержимым в каталоге src.После того как цель завершена, test.doc все еще должен иметь свое первоначальное содержимое.Остальные файлы должны быть пустыми.

В ответ на ваш вопрос о преобразователе регулярных выражений:

<mapper type="regexp" from="(.*)" to="tmp/\1"/>

Это захватывает все имя входящего файла в группу ...

from="(.*)"

и добавляет "tmp /" к этой захваченной группе ...

to="tmp/\1"

(В регулярном выражении \1 относится к первой захваченной группе в выражении. Группы определяются с помощью скобок.)

Таким образом, из src/somefile.txt мы получим somefile.txt в качестве входного файла для преобразователя и переведем его в tmp/somefile.txt.

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