/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; namespace Lucene.Net.Index { /// Useful constants representing filenames and extensions used by lucene /// /// /// Bernhard Messer /// /// $rcs = ' $Id: Exp $ ' ; /// sealed public class IndexFileNames { /// Name of the index segment file public const System.String SEGMENTS = "segments"; /// Name of the generation reference file name public const System.String SEGMENTS_GEN = "segments.gen"; /// Name of the index deletable file (only used in /// pre-lockless indices) /// public const System.String DELETABLE = "deletable"; /// Extension of norms file public const System.String NORMS_EXTENSION = "nrm"; /// This array contains all filename extensions used by /// Lucene's index files, with two exceptions, namely the /// extension made up from .f + a number and /// from .s + a number. Also note that /// Lucene's segments_N files do not have any /// filename extension. /// public static readonly System.String[] INDEX_EXTENSIONS = new System.String[]{"cfs", "fnm", "fdx", "fdt", "tii", "tis", "frq", "prx", "del", "tvx", "tvd", "tvf", "gen", "nrm"}; /// File extensions of old-style index files public static readonly System.String[] COMPOUND_EXTENSIONS = new System.String[]{"fnm", "frq", "prx", "fdx", "fdt", "tii", "tis"}; /// File extensions for term vector support public static readonly System.String[] VECTOR_EXTENSIONS = new System.String[]{"tvx", "tvd", "tvf"}; /// Computes the full file name from base, extension and /// generation. If the generation is -1, the file name is /// null. If it's 0, the file name is . /// If it's > 0, the file name is _. /// /// /// -- main part of the file name /// /// -- extension of the filename (including .) /// /// -- generation /// public static System.String FileNameFromGeneration(System.String base_Renamed, System.String extension, long gen) { if (gen == - 1) { return null; } else if (gen == 0) { return base_Renamed + extension; } else { #if !PRE_LUCENE_NET_2_0_0_COMPATIBLE return base_Renamed + "_" + Lucene.Net.Documents.NumberTools.ToString(gen) + extension; #else return base_Renamed + "_" + System.Convert.ToString(gen, 16) + extension; #endif } } } }