org.apache.cassandra.db

## Class Directories

- java.lang.Object
- - org.apache.cassandra.db.Directories

    public class Directories
    extends java.lang.Object

Encapsulate handling of paths to the data files. The directory layout is the following: /<path_to_data_dir>/ks/cf1/ks-cf1-hb-1-Data.db /cf2/ks-cf2-hb-1-Data.db ... In addition, more that one 'root' data directory can be specified so that <path_to_data_dir> potentially represents multiple locations. Note that in the case of multiple locations, the manifest for the leveled compaction is only in one of the location. Snapshots (resp. backups) are always created along the sstables thare are snapshoted (resp. backuped) but inside a subdirectory named 'snapshots' (resp. backups) (and snapshots are furter inside a subdirectory of the name of the snapshot). This class abstracts all those details from the rest of the code.

### Nested Class Summary

Nested Classes
`static class` `Directories.DataDirectory`
`class` `Directories.SSTableLister`

### Field Summary

Fields
`static java.lang.String` `BACKUPS_SUBDIR`
`static Directories.DataDirectory[]` `dataFileLocations`
`static java.lang.String` `SECONDARY_INDEX_NAME_SEPARATOR`
`static java.lang.String` `SNAPSHOT_SUBDIR`

### Method Summary

Methods
`static void` `clearSnapshot(java.lang.String snapshotName, java.util.List<java.io.File> snapshotDirectories)`
`static Directories` `create(java.lang.String keyspacename, java.lang.String cfname)`
`static java.io.File` `getBackupsDirectory(Descriptor desc)`
`java.util.List<java.io.File>` `getCFDirectories()`
`java.io.File` `getDirectoryForNewSSTables()`
`static java.util.List<java.io.File>` `getKSChildDirectories(java.lang.String ksName)`
`java.io.File` `getLocationForDisk(Directories.DataDirectory dataDirectory)` Returns SSTable location which is inside given data directory.
`static java.io.File` `getSnapshotDirectory(Descriptor desc, java.lang.String snapshotName)`
`Directories.DataDirectory` `getWriteableLocation()`
`java.io.File` `getWriteableLocationAsFile()`
`long` `snapshotCreationTime(java.lang.String snapshotName)`
`boolean` `snapshotExists(java.lang.String snapshotName)`
`void` `snapshotLeveledManifest(java.lang.String snapshotName)` Deprecated.
`Directories.SSTableLister` `sstableLister()`
`java.io.File` `tryGetLeveledManifest()` Deprecated.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### BACKUPS_SUBDIR

    public static final java.lang.String BACKUPS_SUBDIR

See Also:
  Constant Field Values

#### SNAPSHOT_SUBDIR

    public static final java.lang.String SNAPSHOT_SUBDIR

See Also:
  Constant Field Values

#### SECONDARY_INDEX_NAME_SEPARATOR

    public static final java.lang.String SECONDARY_INDEX_NAME_SEPARATOR

See Also:
  Constant Field Values

#### dataFileLocations

    public static final Directories.DataDirectory[] dataFileLocations

### Method Detail

#### create

    public static Directories create(java.lang.String keyspacename,
                     java.lang.String cfname)

#### getLocationForDisk

    public java.io.File getLocationForDisk(Directories.DataDirectory dataDirectory)

Returns SSTable location which is inside given data directory.

Parameters:
  `dataDirectory` -
Returns:
  SSTable location

#### getDirectoryForNewSSTables

    public java.io.File getDirectoryForNewSSTables()

#### getWriteableLocationAsFile

    public java.io.File getWriteableLocationAsFile()

#### getWriteableLocation

    public Directories.DataDirectory getWriteableLocation()

Returns:
  a non-blacklisted directory with the most free space and least current tasks.
Throws:
  `java.io.IOError` - if all directories are blacklisted.

#### getSnapshotDirectory

    public static java.io.File getSnapshotDirectory(Descriptor desc,
                                    java.lang.String snapshotName)

#### getBackupsDirectory

    public static java.io.File getBackupsDirectory(Descriptor desc)

#### sstableLister

    public Directories.SSTableLister sstableLister()

#### tryGetLeveledManifest

    @Deprecated
    public java.io.File tryGetLeveledManifest()

Deprecated.

#### snapshotLeveledManifest

    @Deprecated
    public void snapshotLeveledManifest(java.lang.String snapshotName)

Deprecated.

#### snapshotExists

    public boolean snapshotExists(java.lang.String snapshotName)

#### clearSnapshot

    public static void clearSnapshot(java.lang.String snapshotName,
                     java.util.List<java.io.File> snapshotDirectories)

#### snapshotCreationTime

    public long snapshotCreationTime(java.lang.String snapshotName)

#### getKSChildDirectories

    public static java.util.List<java.io.File> getKSChildDirectories(java.lang.String ksName)

#### getCFDirectories

    public java.util.List<java.io.File> getCFDirectories()