org.apache.lucene.store

Class FSDirectory


public final class FSDirectory
extends Directory

Straightforward implementation of Directory as a directory of files.

If the system property 'disableLuceneLocks' has the String value of "true", lock creation will be disabled.

Author:
Doug Cutting
See Also:
Directory

Field Summary

static String
LOCK_DIR
Directory specified by org.apache.lucene.lockdir or java.io.tmpdir system property

Method Summary

void
close()
Closes the store to future operations.
OutputStream
createFile(String name)
Creates a new, empty file in the directory with the given name.
void
deleteFile(String name)
Removes an existing file in the directory.
boolean
fileExists(String name)
Returns true iff a file with the given name exists.
long
fileLength(String name)
Returns the length in bytes of a file in the directory.
static long
fileModified(File directory, String name)
Returns the time the named file was last modified.
long
fileModified(String name)
Returns the time the named file was last modified.
static FSDirectory
getDirectory(File file, boolean create)
Returns the directory instance for the named location.
static FSDirectory
getDirectory(String path, boolean create)
Returns the directory instance for the named location.
File
getFile()
String[]
list()
Returns an array of strings, one for each file in the directory.
Lock
makeLock(String name)
Constructs a Lock with the specified name.
InputStream
openFile(String name)
Returns a stream reading an existing file.
void
renameFile(String from, String to)
Renames an existing file in the directory.
String
toString()
For debug output.
void
touchFile(String name)
Set the modified time of an existing file to now.

Methods inherited from class org.apache.lucene.store.Directory

close, createFile, deleteFile, fileExists, fileLength, fileModified, list, makeLock, openFile, renameFile, touchFile

Field Details

LOCK_DIR

public static final String LOCK_DIR
Directory specified by org.apache.lucene.lockdir or java.io.tmpdir system property

Method Details

close

public final void close()
            throws IOException
Closes the store to future operations.
Overrides:
close in interface Directory

createFile

public final OutputStream createFile(String name)
            throws IOException
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.
Overrides:
createFile in interface Directory

deleteFile

public final void deleteFile(String name)
            throws IOException
Removes an existing file in the directory.
Overrides:
deleteFile in interface Directory

fileExists

public final boolean fileExists(String name)
            throws IOException
Returns true iff a file with the given name exists.
Overrides:
fileExists in interface Directory

fileLength

public final long fileLength(String name)
            throws IOException
Returns the length in bytes of a file in the directory.
Overrides:
fileLength in interface Directory

fileModified

public static final long fileModified(File directory,
                                      String name)
            throws IOException
Returns the time the named file was last modified.

fileModified

public final long fileModified(String name)
            throws IOException
Returns the time the named file was last modified.
Overrides:
fileModified in interface Directory

getDirectory

public static FSDirectory getDirectory(File file,
                                       boolean create)
            throws IOException
Returns the directory instance for the named location.

Directories are cached, so that, for a given canonical path, the same FSDirectory instance will always be returned. This permits synchronization on directories.

Parameters:
file - the path to the directory.
create - if true, create, or erase any existing contents.
Returns:
the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(String path,
                                       boolean create)
            throws IOException
Returns the directory instance for the named location.

Directories are cached, so that, for a given canonical path, the same FSDirectory instance will always be returned. This permits synchronization on directories.

Parameters:
path - the path to the directory.
create - if true, create, or erase any existing contents.
Returns:
the FSDirectory for the named file.

getFile

public File getFile()

list

public final String[] list()
            throws IOException
Returns an array of strings, one for each file in the directory.
Overrides:
list in interface Directory

makeLock

public final Lock makeLock(String name)
Constructs a Lock with the specified name. Locks are implemented with File.createNewFile().

In JDK 1.1 or if system property disableLuceneLocks is the string "true", locks are disabled. Assigning this property any other string will not prevent creation of lock files. This is useful for using Lucene on read-only medium, such as CD-ROM.

Overrides:
makeLock in interface Directory
Parameters:
name - the name of the lock file
Returns:
an instance of Lock holding the lock

openFile

public final InputStream openFile(String name)
            throws IOException
Returns a stream reading an existing file.
Overrides:
openFile in interface Directory

renameFile

public final void renameFile(String from,
                             String to)
            throws IOException
Renames an existing file in the directory.
Overrides:
renameFile in interface Directory

toString

public String toString()
For debug output.

touchFile

public void touchFile(String name)
            throws IOException
Set the modified time of an existing file to now.
Overrides:
touchFile in interface Directory

Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.