如何从BeanShell加载文件?

时间:2018-12-20 12:50:18

标签: java file scripting beanshell system-administration

我如何iterate the directory contents and put each file进入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$ 

使用bulk convert格式(尽管BeanShell可能会过大)。

BeanShellLoad文件吗? fine manual

  

使用方向和路径BeanShell支持a的概念   用于文件的命令的当前工作目录。 cd()   命令可用于更改工作目录,而pwd()可以是   用于显示当前值。 BeanShell当前工作   目录存储在变量bsh.cwd中。

     

所有与文件一起使用的命令都遵循工作目录,   包括以下内容:

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

pathToFile()为方便编写自己的脚本和   您可以使用pathToFile()命令来翻译相对   相对于当前工作文件的绝对路径   目录。绝对路径未修改。

absfilename = pathToFile( filename );

Import apache文件工具?

streams无法完成。

1 个答案:

答案 0 :(得分:1)

假设您必须避免使用Streams,则可以返回到旧的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);