Pentahoで変更されたJavaScriptを使用してフォルダーを削除する方法は?
-
27-09-2019 - |
質問
Pentahoで変更されたJavaScriptを使用してフォルダーを削除しようとしていますが delete
キーワードはPDIコンパイラによって予約されています(メモリから変数を削除するために使用されます)。
これが私がしていることです:
var source = new java.io.File("some path");
var files = source.list();
for (var i=0; i<files.length; i++) {
deleteFile(oldpath + "/" + filename); // empty folder from files, works okey
}
source.delete();
そして、Pentahoから編集エラーが発生します。
フォルダでDeleteFileを試しましたが、明らかにDeleteFileはフォルダーを削除できません。
予約された単語の使用を克服する方法はありますか?
解決
あなたの問題には2つの解決策があります:
1。:より良い:
ジョブを作成し、現在の変換をジョブにインポートします。変換で、フォルダー名をaとして設定します 変数, 、ジョブでは、の変数を使用します フォルダーを削除します ステップ。
2。:簡単です:
修正されたJavaスクリプト値ステップでリフレクションを使用します(スプーン4.0.1でテスト):
var source = new java.io.File("D:\\testdel");
var fileClass = source.getClass();
var delMethod = fileClass.getMethod("delete", null);
delMethod.invoke(source, null);
所属していません StackOverflow