Same as java.io.File#listFiles(java.io.FileFilter) but recursive on directories. @param directory file path to start the search, will not be include in the results @param filter filter apply to the search @return an array of files (including directories) contained inside directory<
(File directory, FileFilter filter)
| 665 | * directory, or if an I/O error occurs. |
| 666 | */ |
| 667 | public static File[] listFilesRecursively(File directory, FileFilter filter) { |
| 668 | List<File> filesList = new ArrayList<File>(); |
| 669 | |
| 670 | File[] filesRootArray = directory.listFiles(filter); |
| 671 | if (filesRootArray == null) { return null; } |
| 672 | |
| 673 | for (File file : filesRootArray) { |
| 674 | filesList.add(file); |
| 675 | if (file.isDirectory()) { |
| 676 | File[] filesDeepArray = listFilesRecursively(file, filter); |
| 677 | if (filesDeepArray == null) { return null; } |
| 678 | filesList.addAll(Arrays.asList(filesDeepArray)); |
| 679 | } |
| 680 | } |
| 681 | |
| 682 | return filesList.toArray(new File[filesList.size()]); |
| 683 | } |
| 684 | |
| 685 | } // class Files |