Index: /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/store/FSDirectory.java =================================================================== --- /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/store/FSDirectory.java (Revision 168213) +++ /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/store/FSDirectory.java (Arbeitskopie) @@ -26,6 +26,7 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import org.apache.lucene.index.IndexReader; import org.apache.lucene.util.Constants; /** @@ -47,19 +48,11 @@ * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String) */ public boolean accept(File dir, String name) { - if (name.endsWith(".cfs")) return true; - else if (name.endsWith(".fnm")) return true; - else if (name.endsWith(".fdt")) return true; - else if (name.endsWith(".fdx")) return true; - else if (name.endsWith(".frq")) return true; - else if (name.endsWith(".prx")) return true; - else if (name.endsWith(".tii")) return true; - else if (name.endsWith(".tis")) return true; - else if (name.endsWith(".tvd")) return true; - else if (name.endsWith(".tvf")) return true; - else if (name.endsWith(".tvx")) return true; - else if (name.endsWith(".del")) return true; - else if (name.equals("deletable")) return true; + for (int i = 0; i < IndexReader.FILENAME_EXTENSIONS.length; i++) { + if (name.endsWith("."+IndexReader.FILENAME_EXTENSIONS[i])) + return true; + } + if (name.equals("deletable")) return true; else if (name.equals("segments")) return true; else if (name.matches(".+\\.f\\d+")) return true; return false; Index: /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/SegmentReader.java =================================================================== --- /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/SegmentReader.java (Revision 165654) +++ /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/SegmentReader.java (Arbeitskopie) @@ -247,12 +247,9 @@ Vector files() throws IOException { Vector files = new Vector(16); - final String ext[] = new String[]{ - "cfs", "fnm", "fdx", "fdt", "tii", "tis", "frq", "prx", "del", - "tvx", "tvd", "tvf", "tvp" }; - for (int i = 0; i < ext.length; i++) { - String name = segment + "." + ext[i]; + for (int i = 0; i < FILENAME_EXTENSIONS.length; i++) { + String name = segment + "." + FILENAME_EXTENSIONS[i]; if (directory().fileExists(name)) files.addElement(name); } Index: /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/IndexReader.java =================================================================== --- /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/IndexReader.java (Revision 165654) +++ /home/dnaber/workspace/LuceneSVN/src/java/org/apache/lucene/index/IndexReader.java (Arbeitskopie) @@ -50,6 +50,16 @@ */ public abstract class IndexReader { + /** + * This array contains all filename extensions used by Lucene's index files, with + * one exception, namely the extension made up from .f + a number. + * Also note that two of Lucene's files (deletable and + * segments) don't have any filename extension. + */ + public final static String FILENAME_EXTENSIONS[] = new String[] { + "cfs", "fnm", "fdx", "fdt", "tii", "tis", "frq", "prx", "del", + "tvx", "tvd", "tvf", "tvp" }; + public static final class FieldOption { private String option; private FieldOption() { }