Java FileUtils.iterateFiles IGNORECASE
我需要按扩展名类型和ignorecase模式查找目录和子目录中的文件,这是我的代码:Java FileUtils.iterateFiles IGNORECASE,java,file,file-io,apache-commons-io,Java,File,File Io,Apache Commons Io,我需要按扩展名类型和ignorecase模式查找目录和子目录中的文件,这是我的代码: String[] patron = {"doc", "xls", "ppt"}; Iterator iter = FileUtils.iterateFiles(new File(directories), patron, true); 我还需要返回扩展名为Doc,Doc。。。ignorecase您必须在 您正在使用的定义 public static Iterator iterateFiles(File d
String[] patron = {"doc", "xls", "ppt"};
Iterator iter = FileUtils.iterateFiles(new File(directories), patron, true);
我还需要返回扩展名为Doc,Doc。。。ignorecase您必须在 您正在使用的定义
public static Iterator iterateFiles(File directory,
String[] extensions,
boolean recursive)
允许对给定目录(以及可选的子目录)中与扩展名数组匹配的文件进行迭代。此方法基于listFiles(文件,字符串[],布尔值)
扩展-扩展数组,例如{“java”,“xml”}。如果此参数为null,则返回所有文件。递归-如果为true,则搜索所有子目录
它应该返回文件,而不考虑文档或文档或文档,它们都是相同的。
否则,还有一个定义可以应用过滤器
您可以将此定义用于IterateFile
iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
在这种情况下,必须传递IOFileFilter对象,才能实现给定的accept方法定义
boolean accept(File dir, String name)
IOFileFilter的文档可以在上找到。您必须参考 您正在使用的定义
public static Iterator iterateFiles(File directory,
String[] extensions,
boolean recursive)
允许对给定目录(以及可选的子目录)中与扩展名数组匹配的文件进行迭代。此方法基于listFiles(文件,字符串[],布尔值)
扩展-扩展数组,例如{“java”,“xml”}。如果此参数为null,则返回所有文件。递归-如果为true,则搜索所有子目录
它应该返回文件,而不考虑文档或文档或文档,它们都是相同的。
否则,还有一个定义可以应用过滤器
您可以将此定义用于IterateFile
iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
在这种情况下,必须传递IOFileFilter对象,才能实现给定的accept方法定义
boolean accept(File dir, String name)
IOFileFilter的文档可以在中找到。使用该方法的其他版本并通过您自己的筛选器:
String[] extensions = new String[] {"doc", "xls", "ppt"};
IOFileFilter filter = new SuffixFileFilter(extensions, IOCase.INSENSITIVE);
Iterator iter = FileUtils.iterateFiles(new File(directorio), filter, DirectoryFileFilter.DIRECTORY);
请注意使用的是
IOCase.INSENSITIVE
使用该方法的其他版本并传递您自己的筛选器:
String[] extensions = new String[] {"doc", "xls", "ppt"};
IOFileFilter filter = new SuffixFileFilter(extensions, IOCase.INSENSITIVE);
Iterator iter = FileUtils.iterateFiles(new File(directorio), filter, DirectoryFileFilter.DIRECTORY);
注意使用了
IOCase.INSENSITIVE
我实际上想对@AurA的答案发表评论,但我不被允许发表评论,因为它说“你必须有50个声誉才能发表评论”
是区分大小写的,因此它不会“返回文件,而不考虑文档或文档或文档”。我实际上想对@AurA的答案发表评论,但我不被允许,因为它说“你必须有50个声誉才能发表评论”
区分大小写,因此它不会“返回文件而不考虑文档或文档或文档”。非常感谢,还要将该行添加到递归搜索中:IOFileFilter filter=new-suffilefilter(用户,IOCase.INSENSITIVE);迭代器iter=FileUtils.iterateFiles(新文件(directorio)、filter、DirectoryFileFilter.DIRECTORY);我的错误是,最后一个参数必须是目录筛选器。我更新了代码,谢谢。@user2671914如果解决了问题,请接受答案。非常感谢,还要在递归搜索中添加一行:IOFileFilter filter=new-suffilefilter(用户,IOCase.INSENSITIVE);迭代器iter=FileUtils.iterateFiles(新文件(directorio)、filter、DirectoryFileFilter.DIRECTORY);我的错误是,最后一个参数必须是目录筛选器。我更新了代码,谢谢。@user2671914如果解决了问题,请接受答案。