Как создать файл в распределенной системе, используя скрипт ant?

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

Сценарий:

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

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

1 ответ

Решение

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

Вот пример.

<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,

Другие вопросы по тегам