我正在开发一个必须能够在 Java 5 上运行并且需要一些文件扩展名过滤的应用程序。我知道 Java 6 中引入了 FileNameExtensionFilter,但这对我不起作用,因为我需要在 Java 5 中工作的东西。是否有替代方法或类可以使这成为可能?
问问题
382 次
2 回答
1
FileFilter是此类的父级,根据您的需要实现它似乎很简单:
public final class ByExtensionFileFilter
extends FileFilter
{
private final String description;
private final Set<String> extensions = new HashSet<String>();
public ByExtensionFileFilter(final String description,
final String first, final String... other)
{
this.description = description;
extensions.add('.' + first);
for (final String s: other)
extensions.add('.' + s);
}
@Override
public boolean accept(final File f)
{
final String name = f.getName();
for (final String extension: extensions)
if(name.endsWith(extension))
return true;
return false;
}
@Override
public String getDescription()
{
return description;
}
}
例如,可以通过处理诸如.jpg
etc之类的名称来修复。
于 2013-05-30T22:37:17.670 回答
0
FilenameFilter和endsWith()方法的组合。
new File(".").list(new FilenameFilter(){
public void boolean accept(File dir, String name) {
return name.endsWith(".png");
}
});
这与FileNameExtensionFilter
.
于 2013-05-30T22:30:26.627 回答