FileUtils.listFiles 从列表中排除特定的文件扩展名
FileUtils.listFiles to exclude specific file extensions from listing
我使用此代码以递归方式从给定目录中获取所有文件。
List<File> fileList = (List<File>) FileUtils.listFiles(new File(directoryName), null , true);
我想从列表中排除一些文件,所以方法的第二个参数值不适合这个目的。
我也尝试使用 notFileFilter,但我不能递归使用它。
FileFilter fileFilter1 = FileFilterUtils.notFileFilter(FileFilterUtils.nameFileFilter(".info", null));
List<File> fileList = (List<File>) FileUtils.listFiles(new File(directoryName), fileFilter1, true);
对于 Java 8 及更高版本,您可以使用轻松流 api
List<File> filteredList = fileList.stream().filter(f -> f.getName().endsWith(".some_extension")).collect(Collectors.toList());
使用listFiles
方法的其他重载:
FileFilter notInfoFilter = FileFilterUtils.notFileFilter(
FileFilterUtils.suffixFileFilter(".info", IOCase.SYSTEM));
Collection<File> files = FileUtils.listFiles(
new File(directoryName), notInfoFilter, TrueFileFilter.INSTANCE);
我使用此代码以递归方式从给定目录中获取所有文件。
List<File> fileList = (List<File>) FileUtils.listFiles(new File(directoryName), null , true);
我想从列表中排除一些文件,所以方法的第二个参数值不适合这个目的。 我也尝试使用 notFileFilter,但我不能递归使用它。
FileFilter fileFilter1 = FileFilterUtils.notFileFilter(FileFilterUtils.nameFileFilter(".info", null));
List<File> fileList = (List<File>) FileUtils.listFiles(new File(directoryName), fileFilter1, true);
对于 Java 8 及更高版本,您可以使用轻松流 api
List<File> filteredList = fileList.stream().filter(f -> f.getName().endsWith(".some_extension")).collect(Collectors.toList());
使用listFiles
方法的其他重载:
FileFilter notInfoFilter = FileFilterUtils.notFileFilter(
FileFilterUtils.suffixFileFilter(".info", IOCase.SYSTEM));
Collection<File> files = FileUtils.listFiles(
new File(directoryName), notInfoFilter, TrueFileFilter.INSTANCE);