2016-03-09 3 views
1

У меня есть следующая иерархия папок:верблюд компонент файл, как отправить всю папку

  • D
    • D1
      • D1doc1.txt
      • D1doc2.otherext
      • Readme. txt
    • D2
      • D2doc1.txt
      • othertext.txt

Использование компонента верблюд файл, я хотел бы послать репертуарную D1 и его содержание в другой конечной точке. Пока мне удается отправлять файл самостоятельно или целое содержимое репертуара, но я не знаю, как отправить с прорисованной структурой репертуар D1 и его контент (а не только контент)

Чтобы отправить весь контент от D1, я пишу:

from("file://D/D1/?noop=true&recursive=true").to(.....) 

и он отправляет все внутри D1 правильно. Теперь, чтобы отправить D1 как полный каталог с содержимым, я попробовал:

from("file://D/?fileName=D1&noop=true&recursive=true").to(.....) 

конечно не работает как файл верблюд, видимо, предназначен для работы на файл только и не каталоги, как я видел на этой ссылке:

http://grokbase.com/t/camel/users/1485bjq5zr/polling-a-directory-for-inner-directories

Однако, это выглядит раздражает и странно для меня, как я должен сделать хак изменения предыдущей иерархии в:

  • D
    • D1
      • D1
        • D1doc1.txt
        • D1doc2.otherext
        • Readme.txt
    • D2
      • D2
        • D2doc1.txt
        • othertext.TXT

так, что, когда я использую:

from("file://D/D1/?noop=true&recursive=true").to(.....) 

наконец делает то, что я хочу посылать каталог, а также. Действительно ли нет более чистого способа сделать это? Если нет, в чем причина?

+0

на самом деле просто добавил «& minDepth = 1» и сделал трюк, как указано в документации ... – bobito

ответ

1

Используйте рекурсивный, чтобы сообщить Camel о перемещении по подкаталоги. И вы можете использовать параметры глубины min/max для управления и того, как далеко вы опускаетесь.

Это решение clean с правильными параметрами для их предназначения.

Например, в команде unix команда find также имеет параметры глубины minx/max и ее аналогичную концепцию в компоненте файла Camel.

Подробнее на: http://camel.apache.org/file2

И если вы не хотите, чтобы построить каталог структурированный на «другой стороне» вы можете использовать опцию flattern.

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