X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBackupFilenameFilter.java;h=b8a721e9ec8b03420d28c160ce5746382561c302;hb=9fd03d86789221ae4f6cf720cadf3d99cc68ac33;hp=647e25052556fe94f8ef2d11f1494286cd0c55cc;hpb=61e7d354202ba56bd3768ebf5f790deec26a6475;p=jalview.git diff --git a/src/jalview/io/BackupFilenameFilter.java b/src/jalview/io/BackupFilenameFilter.java index 647e250..b8a721e 100644 --- a/src/jalview/io/BackupFilenameFilter.java +++ b/src/jalview/io/BackupFilenameFilter.java @@ -1,9 +1,30 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; import java.io.File; import java.io.FilenameFilter; +import java.io.IOException; -public class BackupFileFilter implements FilenameFilter +public class BackupFilenameFilter implements FilenameFilter { public String base; @@ -12,49 +33,34 @@ public class BackupFileFilter implements FilenameFilter public int digits; - public String extension; - - public BackupFileFilter(String base, String template, int digits, - String extension) + public BackupFilenameFilter(String base, String template, int digits) { this.base = base; this.template = template; this.digits = digits; - this.extension = extension; } @Override - public boolean accept(File file, String filename) + public boolean accept(File dir, String filename) { - if (file.isDirectory()) - { - return true; - } - else + try { - 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]+")) + File file = new File( + dir.getCanonicalPath() + File.separatorChar + filename); + if (file.isDirectory()) { - return true; + // backup files aren't dirs! + return false; } - + } catch (IOException e) + { + System.out.println("IOException when checking file '" + filename + + "' is a backupfile"); } - return false; + + BackupFilenameParts bffp = new BackupFilenameParts(filename, base, + template, digits); + return bffp.isBackupFile(); } }