2014-01-24 60 views
1

有很多FTP組件可以提取文件。如果我有一個根目錄,其中包含一些子目錄和幾個文件,並且我想提取所有文件,應該如何使用?Talend - 從FTP獲取所有文件(在幾個目錄中)

例如:

rootDirectory 
     - file1.txt 
     - file2.txt 
     - file3.txt 
     - subDirectory1 
      - file4.txt 
      - file5.txt 
     - subDirectory2 
      - file6.txt 
      - subDirectory2 
        - file7.txt 
        - file8.txt 

我怎樣才能得到文件1到8,只是通過給該組件的路徑rootDirectory?

+0

您使用的是哪種FTP客戶端?結構是根據你的描述進行修正還是僅僅是一個例子?你可以在你的客戶端上使用Perl嗎? –

+0

我使用的是來自Talend(或FTPGet或FileFetch)的FTP組件...我想知道什麼是這種情況下的權利。目錄結構可以不同,但​​我知道可能存在的文件夾。是的,我可以使用Perl。 – user2144555

+0

我想我是說在嘗試進入它們之前確保接收子目錄存在於本地計算機上。 –

回答

1

我還沒有使用FTP組件,但通常你會使用連接到tFileCopytFileList移動文件。所以在你的情況下,我希望你應該使用tFTPFileList連接到你的FTP服務器,掩碼爲"*.txt",然後將它連接到tFTPGET。將此組件設置爲您選擇的本地目錄,遠程目錄"/",然後在文件掩碼中使用((String)globalMap.get("tFTPFileList_1_CURRENT_FILEPATH"))

這種方法似乎是我現在在Talend documentation中剛剛發現的一種方法,雖然它可能需要登錄(如果您使用Talend的話,可能需要登錄才行,可能值得做)。

可能同樣公平的說,除非你打算做一些與數據相關的事情,而不是僅僅抓住它,大多數FTP工具應該能夠輕鬆地從FTP服務器獲取所有東西,而Talend可能不是最好的方法這裏。

+0

當我嘗試進入一個子目錄時,該方法失敗...它給我一個錯誤,因爲它不是一個文件... – user2144555

+0

@ user2144555你有一個公共FTP服務器的子目錄和文本文件嗎? – ydaetskcoR

+0

只是一些友好的建議...如果你做一個「GET/somedir/somefile」你最好確保「/ somedir」也存在於你的本地機器上!您可以通過在本地計算機上添加不同的位置來避免此需求,如「GET/somedir/somefile newnane」(不含目錄)。 –

相關問題