2016-03-09 75 views
1

我有如下文件夾層次:駱駝文件組件如何發送整個文件夾

  • d
    • D1
      • D1doc1.txt
      • D1doc2.otherext
      • 自述。 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向下傳遞子目錄。您可以使用最小/最大深度選項來控制距離以及距離的遠近。

這是清潔解決方案使用正確的選項爲他們的目的。

例如,在unix上,find命令在Camel文件組件中也有minx/max深度選項及其相似的概念。

更多細節在:http://camel.apache.org/file2

如果你不想建立結構化的「另一面」的目錄,你可以使用flattern選項。