2 package saccubus.converter.filegetter;
5 import java.io.FilenameFilter;
6 import org.apache.commons.io.FilenameUtils;
14 private final boolean autoFileName;
15 private final File initFile;
16 private final String prefix;
17 private final String title;
18 private final String[] suffixes;
20 FileLocator(boolean autoFileName, File initFile, String prefix, String title, String... suffixes) {
21 this.autoFileName = autoFileName;
22 this.initFile = initFile;
25 this.suffixes = suffixes;
29 * コンストラクタで指定した条件でファイルを検索する。
30 * autoFileNameがfalseの場合、直接名前指定であるため指定されたファイルをそのまま返す。
31 * autoFileNameがtrueの場合、initFileディレクトリにprefixで始まりsuffixで終わるファイルが存在するか検索し
33 * このファイルも無い場合、指定されたパラメータに従ったファイル名を返す。
34 * このとき拡張子(suffixes)が複数指定されていた場合は最初のものを返す。
35 * @return 所望のファイル。ファイルは存在する場合もあり、存在しない場合もあることに注意。
38 if (!isAutoNaming()) {
41 File res = searchFile();
45 return new File(initFile, prefix + title + suffixes[0]);
49 private final File searchFile() {
50 FilenameFilter filter = new FilenameFilter() {
52 public boolean accept(File dir, String name) {
53 if (name.startsWith(prefix)) {
54 for (String suffix : suffixes) {
55 if (name.endsWith(suffix)) {
63 File[] res = initFile.listFiles(filter);
64 if (res == null || res.length == 0) {
68 System.out.println("複数の候補ファイルがヒットしました. 意図しないファイルが選択されている可能性があります:" + res[0]);
73 protected boolean isAutoNaming() {
77 protected final boolean getAutoFileName() {