package jalview.io; import java.io.File; import java.io.FilenameFilter; public class BackupFileFilter implements FilenameFilter { public String base; public String template; public int digits; public String extension; public BackupFileFilter(String base, String template, int digits, String extension) { this.base = base; this.template = template; this.digits = digits; this.extension = extension; } @Override public boolean accept(File file, String filename) { if (file.isDirectory()) { return true; } else { int numcharstart = template.indexOf(BackupFiles.NUM_PLACEHOLDER); String templateStart = template; String templateEnd = ""; if (numcharstart > -1) { templateStart = template.substring(0, numcharstart); templateEnd = template.substring(numcharstart + BackupFiles.NUM_PLACEHOLDER.length()); } int startLength = base.length() + templateStart.length(); int endLength = templateEnd.length() + extension.length(); if (filename.length() == startLength + digits + endLength && filename.startsWith(base + templateStart) && filename.endsWith(templateEnd + extension) && filename .substring(startLength, filename.length() - endLength + 1) .matches("[0-9]+")) { return true; } } return false; } }