String templateEnd;
- String extension;
-
boolean isBackupFile;
- public BackupFilenameParts(File file, String base, String template, int digits,
- String extension)
+ public BackupFilenameParts(File file, String base, String template,
+ int digits)
{
- this(file.getName(), base, template, digits, extension);
+ this(file.getName(), base, template, digits);
}
public BackupFilenameParts(String filename, String base, String template,
- int digits, String extension)
+ int suggesteddigits)
{
this.isBackupFile = false;
- // calculate minimum length of a backup filename
- int minlength = base.length() + template.length()
- - BackupFiles.NUM_PLACEHOLDER.length() + digits
- + extension.length();
-
- if (!(filename.startsWith(base) && filename.endsWith(extension)
- && filename.length() >= minlength))
- {
- // non-starter
- return;
- }
-
int numcharstart = template.indexOf(BackupFiles.NUM_PLACEHOLDER);
+ int digits = 0;
String templateStart = template;
String templateEnd = "";
if (numcharstart > -1)
templateStart = template.substring(0, numcharstart);
templateEnd = template.substring(
numcharstart + BackupFiles.NUM_PLACEHOLDER.length());
+ digits = suggesteddigits;
+ }
+
+ // calculate minimum length of a backup filename
+ int minlength = base.length() + template.length()
+ - BackupFiles.NUM_PLACEHOLDER.length() + digits;
+
+ if (!(filename.startsWith(base) && filename.length() >= minlength))
+ {
+ // non-starter
+ return;
}
-
+
int startLength = base.length() + templateStart.length();
- int endLength = templateEnd.length() + extension.length();
- String numString = filename.substring(startLength,
- filename.length() - endLength);
+ int endLength = templateEnd.length();
+ String numString = numcharstart > -1
+ ? filename.substring(startLength, filename.length() - endLength)
+ : "";
if (filename.length() >= startLength + digits + endLength
&& filename.startsWith(base + templateStart)
- && filename.endsWith(templateEnd + extension)
- && numString.matches("[0-9]+"))
+ && filename.endsWith(templateEnd)
+ && numString.matches("[0-9]*"))
{
this.base = base;
this.templateStart = templateStart;
- this.num = Integer.parseInt(numString);
+ this.num = numString.length() > 0 ? Integer.parseInt(numString) : 0;
this.digits = digits;
- this.templateStart = templateStart;
this.templateEnd = templateEnd;
this.isBackupFile = true;
}
-
+
}
public boolean isBackupFile()