Get all images within directory - within jar file

前端 未结 2 511
挽巷
挽巷 2021-01-25 14:07

I have a folder inside my project that has 238 images. I want to be able to find all images within the directory.

I\'m currently accessing all these images like this:

2条回答
  •  旧时难觅i
    2021-01-25 15:01

    You can use the PathMatchingResourcePatternResolver provided by Spring.

    public class SpringResourceLoader {
    
        public static void main(String[] args) throws IOException {
            PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    
            // Ant-style path matching
            Resource[] resources = resolver.getResources("/pictures/**");
    
            for (Resource resource : resources) {
                System.out.println("resource = " + resource);
                InputStream is = resource.getInputStream();
                BufferedImage img =  ImageIO.read(is);
                System.out.println("img.getHeight() = " + img.getHeight());
                System.out.println("img.getWidth() = " + img.getWidth());
            }
        }
    }
    

    I didn't do anything fancy with the returned Resource but you get the picture.

    Add this to your maven dependency (if using maven):

    
        org.springframework
        spring-core
        3.1.2.RELEASE
    
    

    This will work directly from within Eclipse/NetBeans/IntelliJ and in the jar that's deployed.

    Running from within IntelliJ gives me the following output:

    resource = file [C:\Users\maba\Development\stackoverflow\Q12016222\target\classes\pictures\BMW-R1100S-2004-03.jpg]
    img.getHeight() = 768
    img.getWidth() = 1024
    

    Running from command line with executable jar gives me the following output:

    C:\Users\maba\Development\stackoverflow\Q12016222\target>java -jar Q12016222-1.0-SNAPSHOT.jar
    resource = class path resource [pictures/BMW-R1100S-2004-03.jpg]
    img.getHeight() = 768
    img.getWidth() = 1024
    

提交回复
热议问题