Как загрузить файлы из BeanShell? - PullRequest
0 голосов
/ 20 декабря 2018

Как мне выполнить итерацию содержимого каталога и поместить каждый файл в List или другую коллекцию?

thufir@dur:~/beanshell$ 
thufir@dur:~/beanshell$ bsh list_ebooks.bsh 
ebook files to iterate
rw_ Dec 19   368225 1 - foundation - isaac asimov.epub
rw_ Dec 19   395042 2 - foundation and empire - isaac asimov.epub
rw_ Dec 19   374631 3 - second foundation -  isaac asimov.epub
rw_ Dec 19  2084565 4 - foundation's edge -  isaac asimov.epub
rw_ Dec 19  2125777 5 - foundation and earth -  isaac asimov.epub
rw_ Dec 19  2187662 6 - prelude to foundation -  isaac asimov.epub
rw_ Dec 19  2173565 7 - forward to foundation -  isaac asimov.epub
thufir@dur:~/beanshell$ 
thufir@dur:~/beanshell$ cat list_ebooks.bsh 


print("ebook files to iterate");

dir("/home/thufir/ebooks/foundation/");


thufir@dur:~/beanshell$ 

В массовое преобразование в формате (хотя BeanShell может быть излишним).

BeanShell будет Load файл?Тонкое руководство :

Работа с каталогами и путями BeanShell поддерживает понятие текущего рабочего каталога для команд, работающих с файлами.Команда cd () может использоваться для изменения рабочего каталога, а pwd () может использоваться для отображения текущего значения.Текущий рабочий каталог BeanShell хранится в переменной bsh.cwd.

Все команды, работающие с файлами, относятся к рабочему каталогу, включая следующие:

dir()
source()
run(),
cat()
load()
save()
mv()
rm()
addClassPath()

pathToFile () Для удобствадля написания собственных сценариев и команд вы можете использовать команду pathToFile (), чтобы преобразовать относительный путь к файлу в абсолютный относительно текущего рабочего каталога.Абсолютные пути не изменены.

absfilename = pathToFile( filename );

Импорт утилиты apache-файла?

Это невозможно сделать с streams .

1 Ответ

0 голосов
/ 02 января 2019

Предполагая, что вам нужно избегать потоков, вы можете вернуться к старому java.io.File.listFiles() методу:

List<File> result = new ArrayList<>();
File dir = new File("/tmp");
File[] files = dir.listFiles();
if (files != null) {
    for (File f : files) {
        if (f.isFile()) {
            result.add(f);
        }
    }
}
System.out.println(result);
...