Java 在JMeter中递归列出文件夹和子文件夹中的文件

Java 在JMeter中递归列出文件夹和子文件夹中的文件,java,groovy,jmeter,beanshell,Java,Groovy,Jmeter,Beanshell,我在JMeter中使用BeanShell Sampler列出文件夹中的所有文件。它只列出目录中的文件,不能在子目录中列出 File folder = new File("C:\\_private\\Files\\input"); File[] files = folder.listFiles(new FileFilter() { public boolean accept(File file) { return file.isFile(); } }); for

我在
JMeter
中使用
BeanShell Sampler
列出文件夹中的所有文件。它只列出目录中的文件,不能在子目录中列出

File folder = new File("C:\\_private\\Files\\input");

File[] files = folder.listFiles(new FileFilter() {
    public boolean accept(File file) {
        return file.isFile();
    }
});

for (int i=0; i < files.length; i++) {
    vars.put("file_" + i, files[i].getAbsolutePath());
}
File folder=新文件(“C:\\\\U private\\Files\\input”);
File[]files=folder.listFiles(新文件过滤器(){
公共布尔接受(文件){
返回file.isFile();
}
});
对于(int i=0;i
您需要递归地执行此操作。您可以使用与文件相同的方式列出所有目录,然后调用您创建的函数。然后,当您使用初始文件调用该函数时,它将遍历树结构并为您提供列表中的所有文件。要添加到列表,请使用
addAll

def listFiles(File folder) {
    ... // Recursive function
}

您需要递归地执行此操作。您可以使用与文件相同的方式列出所有目录,然后调用您创建的函数。然后,当您使用初始文件调用该函数时,它将遍历树结构并为您提供列表中的所有文件。要添加到列表,请使用
addAll

def listFiles(File folder) {
    ... // Recursive function
}
使用以下代码移动到使用:

使用以下代码移动到使用:

对于任何形式的脚本,主要是因为与其他脚本选项相比

Groovy提供的函数正是您想要的

示例代码:

def index = 1

new File('c:/apps/jmeter/bin').eachFileRecurse(groovy.io.FileType.FILES) {
    vars.put('file_' + index, it.getAbsolutePath())
    index++
}
对于任何形式的脚本,主要是因为与其他脚本选项相比

Groovy提供的函数正是您想要的

示例代码:

def index = 1

new File('c:/apps/jmeter/bin').eachFileRecurse(groovy.io.FileType.FILES) {
    vars.put('file_' + index, it.getAbsolutePath())
    index++
}

BeanShell的FileUtils是如何添加到类路径的?Thufir你可以从我的意思是,从BeanShell下载,下载的JAR是如何添加的?也许单独的q.@Thufir您需要将jar添加到JMeter类路径,但是BeanShell的FileUtils是如何添加到类路径的?@Thufir您可以从我的意思是,从BeanShell下载的jar是如何添加的?可能需要将q.@Thufir分开,将jar添加到JMeter类路径