【发布时间】:2019-04-01 22:24:49
【问题描述】:
我认为这很简单,但有些我失败了。
我有这个:
ftp://user:password@host/Folder/Folder/Folder/../${Year}/${Month}/*.csv
我正在尝试打开特定文件夹名称后跟的任何文件夹名称。我正在尝试使用这样的路径访问文件但失败了。失败在这部分/../。
/../ 这部分应该表示任何文件夹,但不知何故路径会返回到上一个文件夹。需要打开 3 个文件夹有一个修复名称,所以我无法更改它。
例如,当我使用这个ftp://user:password@host/Folder/Folder/Folder/../${Year}/${Month}/*.csv 路径时,它将打开像这样ftp://user:password@host/Folder/Folder/${Year}/${Month}/*.csv 的文件夹。它会返回 1 个文件夹,然后是变量中的文件夹,然后是文件。
我使用这个/../,因为在我打开 3 个文件夹之后,我应该检查大约 30 多个文件夹,然后是两个文件夹,如 ${Year}/${Month} 和 3 种类型的正则表达式文件,如 A*.csv B*.csv C*.csv。
我使用Text File Input Step 使用路径访问 Pentaho 数据集成(又名 Kettle)上的文件。
我想将/../ 设置为变量值,但该变量中至少有一个值和两个最大值,所以我不能,因为我有 30 多个值。
我尝试使用Copy row to result 和Get row from result 并在转换上执行Execute every input row,但结果总是失败,每次执行它总是第一行,字段第一行的值相同(字段包含 30+ 个文件夹名 I需要),它不会移动到具有不同值的下一行。
我已经用这个正则表达式[^\/]+\/${Year}\/${Month}\/A.* 尝试了这条路径ftp://user:password@host/Folder/Folder/Folder/(失败)
或者
此路径 ftp://user:password@host/Folder/Folder/Folder/[^\/]+\/${Year}\/${Month}\/ 与此正则表达式 A.*(失败)
那么,还有什么建议吗?
注意,我的语法很糟糕,所以堆垛机允许编辑这个问题。
【问题讨论】:
-
您确定要访问的目录不受保护吗?
-
文件名是一个正则表达式。试试
/\.\./而不是/../。 -
@AlainD 是的,我确定。不知何故
/../部分意思是返回上一个文件夹。
标签: kettle pentaho-data-integration file-access pdi apache-commons-vfs