2015-08-12 3 views
1

У меня есть каталог со многими подкаталогами в нем, в том числе с именем OLD. Эта OLD-папка также может находиться внутри любого из подкаталогов и содержит архивные файлы.
Loop через каталог в Talend

  • Корневой каталог
    • подкаталоге
      • file1.txt
      • file2.txt
    • подкаталоге В
      • file1.txt
      • file2.txt
      • СТАРЫЙ
    • подкаталоге С
      • file1.txt
      • file2.txt
    • подкаталог D
      • file1.txt
      • OLD
      • SUB-подкаталог E
        • file7.txt
        • OLD

Мне нужно создать работу в Talend, которые должны найдите все OLD-папки (в основном и в подкаталоге) и удалите файлы из этой папки , Я могу использовать tFilelist и маскировать файлы, которые нужно удалить. Но не удалось выяснить, как настроить задание на поиск OLD-папки во всех подкаталогах и удалить эти файлы.

ответ

0

Что вам нужно сделать, так это то, что в поле tFileList установите флажок в основной папке, чтобы включить вспомогательные каталоги, а в выпадающем списке типа FileList выберите «Каталоги». Ваша файловая маска должна быть «OLD» или если она больше «OLD». Итерации и используйте параметр ((String) globalMap.get ("tFileList_1_CURRENT_FILEPATH")) для захвата ваших подкаталогов. Теперь вы можете использовать этот путь к папке в tFileDelete, которые также могут удалять папки

+0

Спасибо ... за предложение ... я попробовал это, но это удалит папку OLD ... бит Мне нужно удалить файлы в OLD, а не в папку OLD ..... :( – Meen

+0

это не проблема, поэтому вместо прямого добавления tFileDelete использовать другой tFileList для итерации в каждой найденной папке OLD: ((String) globalMap.get («tFileList_1_CURRENT_FILEPATH»)) на этот раз вы ищете файлы только с маской *. Итерации на результаты FULL FILE PATH с tFileDelete. – OHabushi

+0

Эй, это сработало для меня .... Большое спасибо !!!! Я смог добиться того, что требовалось ... Спасибо за помощь! ... :) – Meen

0

приведены ниже подход ..

  1. Добавить tFileList и настроить для Траверс по всем каталогам.
  2. теперь использовать, если conndition соединение с tFileList
  3. Добавить tJava и соединить с подключением итератора
  4. Добавить tFileDelete после tJava и соединиться с IF условие.
  5. Добавить ниже условия внутри если состояние.

    ((String)globalMap.get("tFileList_2_CURRENT_FILEPATH")).contains("OLD")

  6. Теперь вы получите все файлы из всех выше коды каталогов дадут пропуск файлы, который имеет «старый» в там пути к файлу.

Я не тестировал, но вы можете попробовать.

Смежные вопросы