package org.hedgecode.chess.img;
-import java.io.File;
-import java.io.FilenameFilter;
+import java.io.IOException;
+import java.nio.file.DirectoryStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
/**
*
*
* @author Dmitry Samoshin aka gotty
*/
-public class ImageFilter implements FilenameFilter {
+public class ImageFilter implements DirectoryStream.Filter<Path> {
private static final String[] IMAGES_EXTS = ImageFormat.getAllExts();
}
@Override
- public boolean accept(File dir, String name) {
- return isImageName(name) && isImageExt(name);
+ public boolean accept(Path file) throws IOException {
+ if (Files.isDirectory(file)) {
+ return false;
+ }
+ String filename = file.getFileName().toString();
+ return acceptExt(filename) && acceptName(filename);
}
- private boolean isImageName(String name) {
+ private boolean acceptName(String filename) {
if (names != null) {
- name = name.substring(0, name.lastIndexOf('.'));
+ String name = FilenameUtils.getBaseName(filename);
for (String imageName : names) {
if (imageName.equalsIgnoreCase(name))
return true;
return true;
}
- private boolean isImageExt(String ext) {
- ext = ext.substring(ext.lastIndexOf('.') + 1);
+ private boolean acceptExt(String filename) {
+ String ext = FilenameUtils.getExtension(filename);
for (String imageExt : IMAGES_EXTS) {
if (imageExt.equalsIgnoreCase(ext))
return true;