使用Talend,我想重命名一台Windows机器中的文件,该文件具有我从事固定长度文件中的字段预先知道的文件名。我打算使用tFileCopy来做,但我不知道如何将字段值从tfileInputPositional传递给tfileCopy组件 - 目标文件名。因此,我尝试使用tjava组件执行的java代码例程专门重命名该文件。然而,在我使用代码例程成功检索到名称后,我没有设法使用该代码例程重命名该文件,因为file.renameTo方法似乎不起作用(已知java问题)。
那么如何从tFileCopy组件中引用运行tjava组件的值?有没有其他方法可以将变量值传递给tFileCopy组件?
答案 0 :(得分:3)
您可以将值从tfileInputPositional传递到tJavaRow(或您的tJava)组件,并使用
将文件名存储在全局变量中globalMap.put("filename","yourderivedfilename");
现在在您的tFileCopy组件中,您可以检查RENAME选项并将文件名命名为
globalMap.get("filename")
并且您也可以选中删除源文件复选框或使用tFileDelete删除旧版本的文件