2012-11-30 72 views
1

使用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向您顯示如何檢查文件是否存在,但不是整個文件夾。

回答

2

創建一個父作業,添加此http://wiki.pentaho.com/display/EAI/Check+if+a+folder+is+empty然後如果FALSE再導向的流量到你的轉型

,或者你可以用創建文件夾步驟作業嘗試:http://wiki.pentaho.com/display/EAI/Create+a+folder

+0

使用最新版本的勺子(4.3.0 )我沒有看到鏈接描述的檢查文件夾是否空作業。此鏈接http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Freference_entry_check_folder_empty.html將其放在我的Spoon版本中找不到的「條件」下。 – Mike

+0

我也在4.3,這就是爲什麼你需要做一個新的工作,而不是一個轉型,因爲它是一個工作步驟,而不是一個轉型步驟。 – jipipayo

+0

是的,你是對的,謝謝澄清。我創建了一個父作業(如您所述),並檢查一個文件夾是否爲空。 – Mike

相關問題