---
title: FSVolume
framework: fskit
role: symbol
role_heading: Class
path: fskit/fsvolume
---

# FSVolume

A directory structure for files and folders.

## Declaration

```swift
class FSVolume
```

## Overview

Overview A file system, depending on its type, provides one or more volumes to clients. The FSUnaryFileSystem by definition provides only one volume, while an FSFileSystem supports multiple volumes. You implement a volume for your file system type by subclassing this class, and also conforming to the FSVolume.Handler and FSVolume.PathConfOperations protocols. This protocol defines the minimum set of operations supported by a volume, such as mounting, activating, creating and removing items, and more. Your volume can provide additional functionality by conforming to other volume handler protocols. These protocols add support for operations like open and close, read and write, extended attribute (Xattr) manipulation, and more.

## Topics

### Creating a volume

- [init(volumeID:volumeName:)](fskit/fsvolume/init(volumeid:volumename:).md)
- [FSVolume.Identifier](fskit/fsvolume/identifier.md)
- [FSFileName](fskit/fsfilename.md)

### Accessing volume properties

- [volumeID](fskit/fsvolume/volumeid.md)
- [name](fskit/fsvolume/name.md)

### Implementing required handlers

- [FSVolume.Handler](fskit/fsvolume/handler.md)
- [FSVolumeHandlerResult](fskit/fsvolumehandlerresult.md)
- [FSVolume.PathConfOperations](fskit/fsvolume/pathconfoperations.md)

### Implementing optional handlers

- [FSVolume.OpenCloseHandler](fskit/fsvolume/openclosehandler.md)
- [FSVolume.ReadWriteHandler](fskit/fsvolume/readwritehandler.md)
- [FSVolume.AccessCheckHandler](fskit/fsvolume/accesscheckhandler.md)
- [FSVolume.RenameHandler](fskit/fsvolume/renamehandler.md)
- [FSVolume.PreallocateHandler](fskit/fsvolume/preallocatehandler.md)
- [FSVolume.XattrHandler](fskit/fsvolume/xattrhandler.md)
- [FSVolume.ItemDeactivationHandler](fskit/fsvolume/itemdeactivationhandler.md)
- [FSVolume.KernelOffloadedIOHandler](fskit/fsvolume/kerneloffloadediohandler.md)
- [FSVolume.DataCacheHandler](fskit/fsvolume/datacachehandler.md)
- [FSVolume.SeekRegionHandler](fskit/fsvolume/seekregionhandler.md)

### Managing caching behavior

- [setCacheState(for:cacheMode:coherencyType:action:)](fskit/fsvolume/setcachestate(for:cachemode:coherencytype:action:).md)
- [FSItem](fskit/fsitem.md)
- [FSVolume.DataCacheMode](fskit/fsvolume/datacachemode.md)
- [FSVolume.KernelCacheCoherencyType](fskit/fsvolume/kernelcachecoherencytype.md)
- [FSVolume.KernelCacheCoherencyAction](fskit/fsvolume/kernelcachecoherencyaction.md)

### Deprecated

- [FSVolume.Operations](fskit/fsvolume/operations.md)
- [FSVolume.OpenCloseOperations](fskit/fsvolume/opencloseoperations.md)
- [FSVolume.ReadWriteOperations](fskit/fsvolume/readwriteoperations.md)
- [FSVolume.AccessCheckOperations](fskit/fsvolume/accesscheckoperations.md)
- [FSVolume.RenameOperations](fskit/fsvolume/renameoperations.md)
- [FSVolume.PreallocateOperations](fskit/fsvolume/preallocateoperations.md)
- [FSVolume.XattrOperations](fskit/fsvolume/xattroperations.md)
- [FSVolume.ItemDeactivation](fskit/fsvolume/itemdeactivation.md)
- [FSVolumeKernelOffloadedIOOperations](fskit/fsvolumekerneloffloadediooperations.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Identifiable](swift/identifiable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
