【问题标题】:Talend - Rename File in Windows with a string retrieved by a tjava componentTalend - 在 Windows 中使用 tjava 组件检索的字符串重命名文件
【发布时间】:2014-04-22 22:09:54
【问题描述】:

使用 Talend,我想重命名 Windows 机器中的文件,该文件的文件名我事先从固定长度文件的字段中检索到我不知道。我打算使用 tFileCopy 来执行此操作,但我不知道如何将字段值从 tfileInputPositional 传递给 tfileCopy 组件 - 目标文件名。因此,我尝试使用 tjava 组件执行的 java 代码例程专门重命名文件。尽管如此,在我使用代码例程成功检索名称后,我也无法使用该代码例程重命名文件,导致 file.renameTo 方法似乎不起作用(已知的 java 问题)。

那么,如何从 tFileCopy 组件中引用我在运行 tjava 组件时获得的值?有没有其他方法可以将变量值传递给 tFileCopy 组件?

【问题讨论】:

    标签: talend


    【解决方案1】:

    您可以将值从 tfileInputPositional 传递给 tJavaRow(或您的 tJava)组件,并使用

    将文件名存储在全局变量中
    globalMap.put("filename","yourderivedfilename");
    

    现在在您的 tFileCopy 组件中,您可以检查 RENAME 选项并将文件名指定为

    globalMap.get("filename")
    

    您也可以选中删除源文件复选框或使用 tFileDelete 删除旧版本的文件

    【讨论】:

    • 别忘了给它添加字符串转换! (String)globalMap.get
    • 首先感谢您的帮助。我是 Talend/Java 的新手,所以请耐心等待我的进一步说明。如果我在我的代码例程中间包含对 globalMap 变量的引用,我会得到“globalMap 无法解析”。我如何克服这个问题?
    • 您要在 tJava 或 tJavaRow 组件中添加此代码例程?就像您在这里一样, (String) globalMap.get() 应该可用。你能发布你的代码示例和工作快照吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-11
    • 2014-02-13
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多