Pentaho の Kettle ツールを使用して、ディレクトリからすべての XML ファイルを取得するための Get File Names ステップから始まる変換をセットアップしました。ステップは次のように構成されます。
File/Directory: "c:\DataFolder"
Wildcard (RegExp): ".*xml"
これはうまく機能し、「DataFolder」フォルダー内のすべての XML ファイルを取得できます。
ただし、DataFolder が存在しない場合 (他の誰かが削除したため)、次のエラーが発生します。
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : org.apache.commons.vfs.FileNotFolderException: Could not list the contents of "file:///c:/DataFolder" because it is not a folder.
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(Unknown Source)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at org.pentaho.di.core.fileinput.FileInputList.createFileList(FileInputList.java:268)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at org.pentaho.di.trans.steps.getfilenames.GetFileNamesMeta.getFileList(GetFileNamesMeta.java:690)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at org.pentaho.di.trans.steps.getfilenames.GetFileNames.init(GetFileNames.java:336)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:62)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : at java.lang.Thread.run(Unknown Source)
要するに: FileNotFolderException: 「file:///c:/DataFolder」はフォルダーではないため、内容を一覧表示できませんでした。
フォルダが存在しない場合は、単純に変換を停止して続行したくありません。
File Exists ステップと Filter Rows ステップを組み合わせて条件付きを提供しようとしましたが、うまくいきませんでした。Hello World チュートリアルでは、フォルダー全体ではなく、ファイルが存在するかどうかを確認する方法を示します。