I want to search for all .po files in a directory and add them to a HashMap.
My directories looks like the following:
dir1\<any number of subdirs>\*_en_*.po
*_it_*.po
...
dir2\<any number of subdirs>\*_en_*.po
. *_es_*.po
. ...
.
dirn\<any number of subdirs>\...
How can I represent/search these files with the help of java-Streams and HashMap<String, List<File>>, with en/de/it.po as a List<File> type and the respective directory root of these files dir1\subdir-1\**\subdir-n as a key?
I've tried the following solution from a similar post: https://stackoverflow.com/a/62824848/10042081 but I wasn't able to manipulate the filter/groupings correctly in order to solve my problem.
I've also tried to use listFiles() + isDirectory() recursively in order to achieve the desired result, with no success.
This is pretty simple using
Files.find()to walk a directory tree looking for matching files, andCollectors.groupingBy()to convert that stream into the desired map.This will give you a map where the keys are paths to directories, and the values are lists of paths to all the
.pofiles in those directories.