2014-04-16 72 views
2

檢索到的字符串,我想在Windows機器文件重命名,我沒有在一個固定長度的文件從一個字段檢索事先知道文件名。我打算使用tFileCopy來完成它,但我不知道如何將字段值從tfileInputPositional傳遞到tfileCopy組件 - 目標文件名。所以,我試圖用一個用tjava組件執行的java代碼例程獨佔地重命名該文件。儘管如此,在我用代碼例程成功檢索了該名稱之後,我還沒有設法用該代碼例程重命名文件,導致file.renameTo方法似乎無法工作(已知的java問題)。了Talend - 在Windows中重命名文件與由tjava組件中使用了Talend

因此,如何從tFileCopy組件可我參考,我獲得運行tjava分量的價值?是否有任何其他方式將變量值傳遞給tFileCopy組件?

回答

3

你可以從tfileInputPositional傳遞價值tJavaRow(或您的tJava)成分,並使用

globalMap.put("filename","yourderivedfilename"); 

現在在你的tFileCopy組件在一個全局變量保存的文件名,你可以檢查重命名選項,並給文件名

globalMap.get("filename") 

,你也可以檢查刪除源文件複選框或使用tFileDelete刪除文件

+1

的舊版本不要忘記添加字符串鑄造吧! (String)globalMap.get –

+0

首先感謝您的幫助。我是Talend/Java的新手,請耐心等待我的進一步說明。如果我在我的代碼例程中包含對globalMap變量的引用,那麼我會得到«globalMap無法解析»。我如何克服這一點? –

+0

你在tJava或tJavaRow組件中添加的這段代碼例程?就好像你在這裏做的那樣,(String)globalMap.get()應該是可用的。你可以發佈你的代碼示例和作業快照。 – garpitmzn