使用Pentaho的Kettle工具,我有一個轉換設置,從獲取文件名稱步驟開始抓取目錄中的所有XML文件。步驟配置是這樣的:如何避免Kettle ETL中不存在文件夾?
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:無法列出文件」的內容:///c:/ DataFolder「,因爲它不是一個文件夾。
如果該文件夾不存在,我想簡單地停止轉換並不繼續。
我已經嘗試使用File Exists步驟結合Filter Fows步驟來提供有條件但沒有運氣。 Hello World tutorial向您顯示如何檢查文件是否存在,但不是整個文件夾。
使用最新版本的勺子(4.3.0 )我沒有看到鏈接描述的檢查文件夾是否空作業。此鏈接http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Freference_entry_check_folder_empty.html將其放在我的Spoon版本中找不到的「條件」下。 – Mike
我也在4.3,這就是爲什麼你需要做一個新的工作,而不是一個轉型,因爲它是一個工作步驟,而不是一個轉型步驟。 – jipipayo
是的,你是對的,謝謝澄清。我創建了一個父作業(如您所述),並檢查一個文件夾是否爲空。 – Mike