从Resources文件夹JAVA获取文件夹

时间:2016-04-14 12:33:32

标签: java file src

大家好我无法弄清楚这个问题:这行代码应该可行

File[] file = (new File(getClass().getResource("resources/images_resultats"))).listFiles();

我想要一个文件列表,这些文件位于“resources”下的“images_resultats”下。

Project image

3 个答案:

答案 0 :(得分:3)

如果resources/images_resultats不在您的类路径中和/或它在jar文件中,它将无法工作。

你的代码甚至不正确它应该是这样的:

File[] file = (new File(getClass().getResource("/my/path").toURI())).listFiles();

答案 1 :(得分:0)

您可以使用 FileSystem 类确定资源文件夹中的文件(即使它在 jar 中)。

public static void doSomethingWithResourcesFolder(String inResourcesPath) throws URISyntaxException {
    URI uri = ResourcesFolderUts.class.getResource(inResourcesPath).toURI();
    try( FileSystem fileSystem = FileSystems.newFileSystem(uri, Collections.emptyMap() ) ){
        Path folderRootPath = fileSystem.getPath(inResourcesPath);
        Stream<Path> walk = Files.walk(folderRootPath, 1);
        walk.forEach(childFileOrFolder -> {
            //do something with the childFileOrFolder
        });
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

inResourcesPath 应该类似于 "/images_resultats"

请注意,childFileOrFolder 路径只能在 FileSystem 保持打开状态时使用,如果您尝试(例如)返回路径然后稍后使用它们,则会出现文件系统关闭异常。

为您自己的一个类更改 ResourcesFolderUts

答案 2 :(得分:-2)

假设资源文件夹在classpath中,这可能有用。

   String folder = getClass().getResource("images_resultats").getFile();
   File[] test = new File(folder).listFiles();