Как удалить папку с помощью модифицированного JavaScript в Pentaho? - PullRequest
2 голосов
/ 03 октября 2010

Я пытаюсь удалить папку с использованием модифицированного 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();

И я получаю ошибку компиляции из Пентахо.

Я попытался удалить файл из папки, но, очевидно, deleteFile не может удалить папку.

Какие-нибудь предложения, как преодолеть использование зарезервированного слова?

1 Ответ

2 голосов
/ 04 октября 2010

Существует 2 решения вашей проблемы:

1 .: Чем лучше:

Создайте задание, импортируйте текущее преобразование в задание.В преобразовании задайте имя папки как переменная , в задании используйте переменную в шаге удаление папок .

2 .: Чем проще:

Использовать отражение на шаге «Изменение значения сценария Java» (проверено в Spoon 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);
...