【问题标题】:Copy/Move files in PDI / Spoon yields 'is not a file' error在 PDI / Spoon 中复制/移动文件会产生“不是文件”错误
【发布时间】:2015-12-31 11:00:11
【问题描述】:

我正在尝试自动每周生成数据库。作为此过程的第一步,我需要从网络位置M:\ 获取一组文件。流程如下:

  1. 从我的本地文件夹 (REMOVE_OLD_FILES) 中删除任何可能剩余的旧源文件。
  2. 使用正则表达式 (GET_FILES) 获取所需文件的名称。
  3. 将文件从网络位置复制到我的本地文件夹以供进一步处理 (COPY/MOVE FILES)

第 3 步是我遇到麻烦的地方,我经常收到以下错误:

Error processing files. Exception : org.apache.commons.vfs.FileNotFoundException: Could not read from "file:///M:/FILESOURCE/FILENAME.zip" because it is a not a file.

但是,当我手动定位网络位置上的“错误”文件并尝试打开或复制它时,没有问题。如果我随后重新运行 Spoon 作业,则此文件不会出现错误(尽管下一个文件可能会导致错误)。

到目前为止,我已经验证了第 1 步和第 2 步运行正确:更具体地说,从第 2 步返回的文件名中没有错误。

显然,我宁愿不必先手动打开所有文件以确保 Spoon 可以正确复制它们。有谁知道可能导致这种行为的原因是什么?

为完整起见,以下是在COPY/MOVE FILES 步骤中选择的参数。

【问题讨论】:

    标签: pdi pentaho-spoon


    【解决方案1】:

    我遇到了不同客户的相同问题,最后我尝试了一些基本方法并得到了解决。它也可能对您的情况有所帮助。

    另外,其他用户也可以遵循此规则。

    试试这个:使用 Spoon Job“创建文件夹”创建所有必需的文件夹,并在创建文件夹后从您的工作或转换中停用/删除这些跃点。

    这是因为,您用来删除文件的用户未被识别为 Windows 用户。文件夹到位后,您可以从作业中删除“创建文件夹”步骤。

    【讨论】:

      【解决方案2】:

      文件路径错误。如果您在 Windows 环境中运行 spoon,您应该使用 Windows 格式的文件路径。尝试从

      "file:///M:/FILESOURCE/FILENAME.zip"

      "M:\FILESOURCE\FILENAME.zip"

      顺便说一句,只有当 M: 是机器中的实际驱动器时,它才会起作用。如果你想访问网络中的文件,你应该使用共享文件夹的网络路径,这样:

      "\\MachineName\M$\FILESOURCE\FILENAME.zip"

      "\\MachineName\FILESOURCE\FILENAME.zip"

      如果您尝试访问网络安装驱动器中的文件,它将无法正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多