Java 列出资源目录中的所有文件

Java 列出资源目录中的所有文件,java,servlets,jersey,Java,Servlets,Jersey,我试图检索资源文件夹中的所有文件,以便能够在JAXB解组器上使用它,但我找不到任何可以替代java上常规file.listFiles的文件 我试过File files=newfilethis.context.getResource/WEB-INF/folder.getPath;并在foreach循环上使用它,但抛出了空指针 需要指出的是,context是一个Jersey@context-ServletContext注入变量 @更新 好的,我现在使用GetResourcePath,并将每个路径转换

我试图检索资源文件夹中的所有文件,以便能够在JAXB解组器上使用它,但我找不到任何可以替代java上常规file.listFiles的文件

我试过File files=newfilethis.context.getResource/WEB-INF/folder.getPath;并在foreach循环上使用它,但抛出了空指针

需要指出的是,context是一个Jersey@context-ServletContext注入变量

@更新

好的,我现在使用GetResourcePath,并将每个路径转换为uri,而不是文件

Set<String> catalogosPath = this.context.getResourcePaths("/WEB-INF/catalogos/");
        for(String catalogoPath : catalogosPath){
            URI uri = context.getResource(catalogoPath).toURI();
            File arquivo = new File(uri.getPath());
            tempCat = (Catalogo) jaxbUnmarshaller.unmarshal(arquivo);
            catalogos.add(tempCat);
        }

tomcat向我抛出了一个错误,它说/localhost/cvrest/WEB-INF/catalogos/myfile.xml文件不存在,但它存在。我试图解开它,但它让我扔没有找到文件。我可能误解了GetResourcePath返回的内容,它给了我一个url,我转换对了吗?

您可以在servlet中使用context.getRealPath/来获取项目的基本路径。要获取文件列表,只需将文件路径附加到相对于项目路径的文件路径,例如context.getRealPath/+/WEB-INF/classes/folder

无论得到什么答案,都不要使用getRealPath,只需使用getresourcepath即可。另见@BalusC,我不知道。我已经更新了我的答案以使用getResource。@Cássio:您仍然将它们视为本地磁盘文件系统路径。如前所述,请使用getResourcePath,不要将它们转换为File/Path。它不是按定义的文件。这些文件可以驻留在内存或虚拟文件系统中,甚至可以驻留在网络中的其他地方。换句话说,URI不能保证以文件开头://@BalusC有意义。@BalusC我已经更新了这个问题。