## Uses of Class
org.apache.lucene.store.Directory

Packages that use Directory
org.apache.lucene.codecs: Codecs API: API for customization of the encoding and structure of the index.
org.apache.lucene.codecs.compressing: StoredFieldsFormat that allows cross-document and cross-field compression of stored fields.
org.apache.lucene.codecs.lucene50: Components from the Lucene 5.0 index format See `org.apache.lucene.codecs.lucene80` for an overview of the index format.
org.apache.lucene.codecs.lucene60: Components from the Lucene 6.0 index format.
org.apache.lucene.codecs.lucene70: Components from the Lucene 7.0 index format.
org.apache.lucene.index: Code to maintain and access indices.
org.apache.lucene.search: Code to search indices.
org.apache.lucene.store: Binary i/o API, used for all index data.
org.apache.lucene.util: Some utility classes.
org.apache.lucene.util.bkd: Block KD-tree, implementing the generic spatial data structure described in this paper.

### Uses of Directory in org.apache.lucene.codecs

Methods in org.apache.lucene.codecs that return Directory
`abstract Directory` CompoundFormat.`getCompoundReader(Directory dir, SegmentInfo si, IOContext context)` Returns a Directory view (read-only) for the compound files in this segment

Methods in org.apache.lucene.codecs with parameters of type Directory
`abstract StoredFieldsReader` StoredFieldsFormat.`fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context)` Returns a `StoredFieldsReader` to load stored fields.
`abstract StoredFieldsWriter` StoredFieldsFormat.`fieldsWriter(Directory directory, SegmentInfo si, IOContext context)` Returns a `StoredFieldsWriter` to write stored fields.
`abstract Directory` CompoundFormat.`getCompoundReader(Directory dir, SegmentInfo si, IOContext context)` Returns a Directory view (read-only) for the compound files in this segment
`abstract FieldInfos` FieldInfosFormat.`read(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, IOContext iocontext)` Read the `FieldInfos` previously written with `FieldInfosFormat.write(org.apache.lucene.store.Directory, org.apache.lucene.index.SegmentInfo, java.lang.String, org.apache.lucene.index.FieldInfos, org.apache.lucene.store.IOContext)`.
`abstract SegmentInfo` SegmentInfoFormat.`read(Directory directory, String segmentName, byte[] segmentID, IOContext context)` Read `SegmentInfo` data from a directory.
`abstract Bits` LiveDocsFormat.`readLiveDocs(Directory dir, SegmentCommitInfo info, IOContext context)` Read live docs bits.
`abstract TermVectorsReader` TermVectorsFormat.`vectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context)` Returns a `TermVectorsReader` to read term vectors.
`abstract TermVectorsWriter` TermVectorsFormat.`vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context)` Returns a `TermVectorsWriter` to write term vectors.
`abstract void` SegmentInfoFormat.`write(Directory dir, SegmentInfo info, IOContext ioContext)` Write `SegmentInfo` data.
`abstract void` CompoundFormat.`write(Directory dir, SegmentInfo si, IOContext context)` Packs the provided segment's files into a compound format.
`abstract void` FieldInfosFormat.`write(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, FieldInfos infos, IOContext context)` Writes the provided `FieldInfos` to the directory.
`abstract void` LiveDocsFormat.`writeLiveDocs(Bits bits, Directory dir, SegmentCommitInfo info, int newDelCount, IOContext context)` Persist live docs bits.

### Uses of Directory in org.apache.lucene.codecs.compressing

Methods in org.apache.lucene.codecs.compressing with parameters of type Directory
`StoredFieldsReader` CompressingStoredFieldsFormat.`fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context)`
`StoredFieldsWriter` CompressingStoredFieldsFormat.`fieldsWriter(Directory directory, SegmentInfo si, IOContext context)`
`TermVectorsReader` CompressingTermVectorsFormat.`vectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context)`
`TermVectorsWriter` CompressingTermVectorsFormat.`vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context)`

Constructors in org.apache.lucene.codecs.compressing with parameters of type Directory
Constructor and Description
`CompressingStoredFieldsReader(Directory d, SegmentInfo si, String segmentSuffix, FieldInfos fn, IOContext context, String formatName, CompressionMode compressionMode)` Sole constructor.
`CompressingStoredFieldsWriter(Directory directory, SegmentInfo si, String segmentSuffix, IOContext context, String formatName, CompressionMode compressionMode, int chunkSize, int maxDocsPerChunk, int blockSize)` Sole constructor.
`CompressingTermVectorsReader(Directory d, SegmentInfo si, String segmentSuffix, FieldInfos fn, IOContext context, String formatName, CompressionMode compressionMode)` Sole constructor.
`CompressingTermVectorsWriter(Directory directory, SegmentInfo si, String segmentSuffix, IOContext context, String formatName, CompressionMode compressionMode, int chunkSize, int blockSize)` Sole constructor.

### Uses of Directory in org.apache.lucene.codecs.lucene50

Methods in org.apache.lucene.codecs.lucene50 that return Directory
`Directory` Lucene50CompoundFormat.`getCompoundReader(Directory dir, SegmentInfo si, IOContext context)`

Methods in org.apache.lucene.codecs.lucene50 with parameters of type Directory
`StoredFieldsReader` Lucene50StoredFieldsFormat.`fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context)`
`StoredFieldsWriter` Lucene50StoredFieldsFormat.`fieldsWriter(Directory directory, SegmentInfo si, IOContext context)`
`Directory` Lucene50CompoundFormat.`getCompoundReader(Directory dir, SegmentInfo si, IOContext context)`
`FieldInfos` Lucene50FieldInfosFormat.`read(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, IOContext context)`
`Bits` Lucene50LiveDocsFormat.`readLiveDocs(Directory dir, SegmentCommitInfo info, IOContext context)`
`void` Lucene50CompoundFormat.`write(Directory dir, SegmentInfo si, IOContext context)`
`void` Lucene50FieldInfosFormat.`write(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, FieldInfos infos, IOContext context)`
`void` Lucene50LiveDocsFormat.`writeLiveDocs(Bits bits, Directory dir, SegmentCommitInfo info, int newDelCount, IOContext context)`

### Uses of Directory in org.apache.lucene.codecs.lucene60

Methods in org.apache.lucene.codecs.lucene60 with parameters of type Directory
`FieldInfos` Lucene60FieldInfosFormat.`read(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, IOContext context)`
`void` Lucene60FieldInfosFormat.`write(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, FieldInfos infos, IOContext context)`

### Uses of Directory in org.apache.lucene.codecs.lucene70

Methods in org.apache.lucene.codecs.lucene70 with parameters of type Directory
`SegmentInfo` Lucene70SegmentInfoFormat.`read(Directory dir, String segment, byte[] segmentID, IOContext context)`
`void` Lucene70SegmentInfoFormat.`write(Directory dir, SegmentInfo si, IOContext ioContext)`

### Uses of Directory in org.apache.lucene.index

Fields in org.apache.lucene.index declared as Directory
`Directory` CheckIndex.Status.`dir` Directory index is in.
`Directory` SegmentInfo.`dir` Where this segment resides.
`Directory` SegmentReadState.`directory` `Directory` where this segment is read from.
`protected Directory` DirectoryReader.`directory` The index directory.
`Directory` SegmentWriteState.`directory` `Directory` where this segment will be written to.

Methods in org.apache.lucene.index that return Directory
`Directory` DirectoryReader.`directory()` Returns the directory this index resides in.
`Directory` SegmentReader.`directory()` Returns the directory this index resides in.
`Directory` IndexWriter.`getDirectory()` Returns the Directory used by this index.
`abstract Directory` IndexCommit.`getDirectory()` Returns the `Directory` for the index.
`Directory` MergePolicy.MergeException.`getDirectory()` Returns the `Directory` of the index that hit the exception.
`Directory` MergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)` Wraps the incoming `Directory` so that we can merge-throttle it using `RateLimitedIndexOutput`.
`Directory` NoMergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)`
`Directory` ConcurrentMergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)`

Methods in org.apache.lucene.index with parameters of type Directory
`long` IndexWriter.`addIndexes(Directory... dirs)` Adds all segments from an array of indexes into this index.
`void` SegmentInfos.`commit(Directory dir)` Writes and syncs to the Directory dir, taking care to remove the segments file on exception
`static long` SegmentInfos.`getLastCommitGeneration(Directory directory)` Get the generation of the most recent commit to the index in this directory (N in the segments_N file).
`static String` SegmentInfos.`getLastCommitSegmentsFileName(Directory directory)` Get the filename of the segments_N file for the most recent commit to the index in this Directory.
`protected void` ConcurrentMergeScheduler.`handleMergeException(Directory dir, Throwable exc)` Called when an exception is hit in a background merge thread
`static boolean` DirectoryReader.`indexExists(Directory directory)` Returns `true` if an index likely exists at the specified directory.
`static List<IndexCommit>` DirectoryReader.`listCommits(Directory dir)` Returns all commit points that exist in the Directory.
`static DirectoryReader` DirectoryReader.`open(Directory directory)` Returns a IndexReader reading the index in the given Directory
`static DirectoryReader` DirectoryReader.`open(Directory directory, Map<String,String> readerAttributes)` Returns a IndexReader reading the index in the given Directory
`static DirectoryReader` StandardDirectoryReader.`open(Directory directory, SegmentInfos infos, List<? extends LeafReader> oldReaders, Map<String,String> readerAttributes)` This constructor is only used for `StandardDirectoryReader.doOpenIfChanged(SegmentInfos)`, as well as NRT replication.
`static SegmentInfos` SegmentInfos.`readCommit(Directory directory, ChecksumIndexInput input, long generation)` Read the commit from the provided `ChecksumIndexInput`.
`static SegmentInfos` SegmentInfos.`readCommit(Directory directory, String segmentFileName)` Read a particular segmentFileName.
`static SegmentInfos` SegmentInfos.`readLatestCommit(Directory directory)` Find the latest commit (`segments_N file`) and load all `SegmentCommitInfo`s.
`String` MergePolicy.MergeSpecification.`segString(Directory dir)` Returns a description of the merges in this specification.
`Directory` MergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)` Wraps the incoming `Directory` so that we can merge-throttle it using `RateLimitedIndexOutput`.
`Directory` NoMergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)`
`Directory` ConcurrentMergeScheduler.`wrapForMerge(MergePolicy.OneMerge merge, Directory in)`
`void` SegmentInfos.`write(Directory directory, IndexOutput out)` Write ourselves to the provided `IndexOutput`

Constructors in org.apache.lucene.index with parameters of type Directory
Constructor and Description
`CheckIndex(Directory dir)` Create a new CheckIndex on the directory.
`CheckIndex(Directory dir, Lock writeLock)` Expert: create a directory with the specified lock.
`DirectoryReader(Directory directory, LeafReader[] segmentReaders)` Expert: Constructs a `DirectoryReader` on the given subReaders.
`FindSegmentsFile(Directory directory)` Sole constructor.
`IndexUpgrader(Directory dir)` Creates index upgrader on the given directory, using an `IndexWriter` using the given `matchVersion`.
`IndexUpgrader(Directory dir, IndexWriterConfig iwc, boolean deletePriorCommits)` Creates index upgrader on the given directory, using an `IndexWriter` using the given config.
`IndexUpgrader(Directory dir, InfoStream infoStream, boolean deletePriorCommits)` Creates index upgrader on the given directory, using an `IndexWriter` using the given `matchVersion`.
`IndexWriter(Directory d, IndexWriterConfig conf)` Constructs a new IndexWriter per the settings given in `conf`.
`MergeException(String message, Directory dir)` Create a `MergeException`.
`MergeException(Throwable exc, Directory dir)` Create a `MergeException`.
`PersistentSnapshotDeletionPolicy(IndexDeletionPolicy primary, Directory dir)` `PersistentSnapshotDeletionPolicy` wraps another `IndexDeletionPolicy` to enable flexible snapshotting, passing `IndexWriterConfig.OpenMode.CREATE_OR_APPEND` by default.
`PersistentSnapshotDeletionPolicy(IndexDeletionPolicy primary, Directory dir, IndexWriterConfig.OpenMode mode)` `PersistentSnapshotDeletionPolicy` wraps another `IndexDeletionPolicy` to enable flexible snapshotting.
`ReaderManager(Directory dir)` Creates and returns a new ReaderManager from the given `Directory`.
`SegmentInfo(Directory dir, Version version, Version minVersion, String name, int maxDoc, boolean isCompoundFile, Codec codec, Map<String,String> diagnostics, byte[] id, Map<String,String> attributes, Sort indexSort)` Construct a new complete SegmentInfo instance from input.
`SegmentReadState(Directory dir, SegmentInfo info, FieldInfos fieldInfos, boolean openedFromWriter, IOContext context, Map<String,String> readerAttributes)` Create a `SegmentReadState`.
`SegmentReadState(Directory dir, SegmentInfo info, FieldInfos fieldInfos, boolean openedFromWriter, IOContext context, String segmentSuffix, Map<String,String> readerAttributes)` Create a `SegmentReadState`.
`SegmentWriteState(InfoStream infoStream, Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, org.apache.lucene.index.BufferedUpdates segUpdates, IOContext context)` Sole constructor.
`SegmentWriteState(InfoStream infoStream, Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, org.apache.lucene.index.BufferedUpdates segUpdates, IOContext context, String segmentSuffix)` Constructor which takes segment suffix.

### Uses of Directory in org.apache.lucene.search

Constructors in org.apache.lucene.search with parameters of type Directory
Constructor and Description
`SearcherManager(Directory dir, SearcherFactory searcherFactory)` Creates and returns a new SearcherManager from the given `Directory`.

### Uses of Directory in org.apache.lucene.store

Subclasses of Directory in org.apache.lucene.store
`class` `BaseDirectory` Base implementation for a concrete `Directory` that uses a `LockFactory` for locking.
`class` `ByteBuffersDirectory` A `ByteBuffer`-based `Directory` implementation that can be used to store index files on the heap.
`class` `FileSwitchDirectory` Expert: A Directory instance that switches files between two other Directory instances.
`class` `FilterDirectory` Directory implementation that delegates calls to another directory.
`class` `FSDirectory` Base class for Directory implementations that store index files in the file system.
`class` `LockValidatingDirectoryWrapper` This class makes a best-effort check that a provided `Lock` is valid before any destructive filesystem operation.
`class` `MMapDirectory` File-based `Directory` implementation that uses mmap for reading, and `FSDirectory.FSIndexOutput` for writing.
`class` `NIOFSDirectory` An `FSDirectory` implementation that uses java.nio's FileChannel's positional read, which allows multiple threads to read from the same file without synchronizing.
`class` `NRTCachingDirectory` Wraps a `RAMDirectory` around any provided delegate directory, to be used during NRT search.
`class` `RAMDirectory` Deprecated. This class uses inefficient synchronization and is discouraged in favor of `MMapDirectory`. It will be removed in future versions of Lucene.
`class` `SimpleFSDirectory` A straightforward implementation of `FSDirectory` using `Files.newByteChannel(Path, java.nio.file.OpenOption...)`.
`class` `SleepingLockWrapper` Directory that wraps another, and that sleeps and retries if obtaining the lock fails.
`class` `TrackingDirectoryWrapper` A delegating Directory that records which files were written to and deleted.

Fields in org.apache.lucene.store declared as Directory
`protected Directory` FilterDirectory.`in`

Methods in org.apache.lucene.store that return Directory
`Directory` FilterDirectory.`getDelegate()` Return the wrapped `Directory`.
`Directory` FileSwitchDirectory.`getPrimaryDir()` Return the primary directory
`Directory` FileSwitchDirectory.`getSecondaryDir()` Return the secondary directory
`static Directory` FilterDirectory.`unwrap(Directory dir)` Get the wrapped instance by `dir` as long as this reader is an instance of `FilterDirectory`.

Methods in org.apache.lucene.store with parameters of type Directory
`void` TrackingDirectoryWrapper.`copyFrom(Directory from, String src, String dest, IOContext context)`
`void` Directory.`copyFrom(Directory from, String src, String dest, IOContext context)` Copies an existing `src` file from directory `from` to a non-existent file `dest` in this directory.
`void` LockValidatingDirectoryWrapper.`copyFrom(Directory from, String src, String dest, IOContext context)`
`abstract Lock` LockFactory.`obtainLock(Directory dir, String lockName)` Return a new obtained Lock instance identified by lockName.
`Lock` FSLockFactory.`obtainLock(Directory dir, String lockName)`
`Lock` SingleInstanceLockFactory.`obtainLock(Directory dir, String lockName)`
`Lock` NoLockFactory.`obtainLock(Directory dir, String lockName)`
`Lock` VerifyingLockFactory.`obtainLock(Directory dir, String lockName)`
`static Directory` FilterDirectory.`unwrap(Directory dir)` Get the wrapped instance by `dir` as long as this reader is an instance of `FilterDirectory`.

Constructors in org.apache.lucene.store with parameters of type Directory
Constructor and Description
`FileSwitchDirectory(Set<String> primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)`
`FilterDirectory(Directory in)` Sole constructor, typically called from sub-classes.
`LockValidatingDirectoryWrapper(Directory in, Lock writeLock)`
`NRTCachingDirectory(Directory delegate, double maxMergeSizeMB, double maxCachedMB)` We will cache a newly created output if 1) it's a flush or a merge and the estimated size of the merged segment is `<= maxMergeSizeMB`, and 2) the total cached bytes is `<= maxCachedMB`
`SleepingLockWrapper(Directory delegate, long lockWaitTimeout)` Create a new SleepingLockFactory
`SleepingLockWrapper(Directory delegate, long lockWaitTimeout, long pollInterval)` Create a new SleepingLockFactory
`TrackingDirectoryWrapper(Directory in)`

### Uses of Directory in org.apache.lucene.util

Methods in org.apache.lucene.util that return Directory
`Directory` OfflineSorter.`getDirectory()` Returns the `Directory` we use to create temp files.

Methods in org.apache.lucene.util that return types with arguments of type Directory
`static Class<? extends Directory>` CommandLineUtil.`loadDirectoryClass(String clazzName)` Loads a specific Directory implementation

Methods in org.apache.lucene.util with parameters of type Directory
`static void` IOUtils.`deleteFiles(Directory dir, Collection<String> names)` Deletes all given file names.
`static void` IOUtils.`deleteFilesIgnoringExceptions(Directory dir, Collection<String> files)` Deletes all given files, suppressing all thrown IOExceptions.
`static void` IOUtils.`deleteFilesIgnoringExceptions(Directory dir, String... files)`
`static boolean` IOUtils.`spins(Directory dir)` If the dir is an `FSDirectory` or wraps one via possibly nested `FilterDirectory` or `FileSwitchDirectory`, this returns `IOUtils.spins(Path)` for the wrapped directory, else, true.

Constructors in org.apache.lucene.util with parameters of type Directory
Constructor and Description
`OfflineSorter(Directory dir, String tempFileNamePrefix)` Defaults constructor.
`OfflineSorter(Directory dir, String tempFileNamePrefix, Comparator<BytesRef> comparator)` Defaults constructor with a custom comparator.
`OfflineSorter(Directory dir, String tempFileNamePrefix, Comparator<BytesRef> comparator, OfflineSorter.BufferSize ramBufferSize, int maxTempfiles, int valueLength, ExecutorService exec, int maxPartitionsInRAM)` All-details constructor.

### Uses of Directory in org.apache.lucene.util.bkd

Constructors in org.apache.lucene.util.bkd with parameters of type Directory
Constructor and Description
`BKDRadixSelector(int numDataDims, int numIndexDims, int bytesPerDim, int maxPointsSortInHeap, Directory tempDir, String tempFileNamePrefix)` Sole constructor.
`BKDWriter(int maxDoc, Directory tempDir, String tempFileNamePrefix, int numDataDims, int numIndexDims, int bytesPerDim, int maxPointsInLeafNode, double maxMBSortInHeap, long totalPointCount)`
`OfflinePointReader(Directory tempDir, String tempFileName, int packedBytesLength, long start, long length, byte[] reusableBuffer)`
`OfflinePointWriter(Directory tempDir, String tempFileNamePrefix, int packedBytesLength, String desc, long expectedCount)` Create a new writer with an unknown number of incoming points