---
title: FSVolume.Handler
framework: fskit
role: symbol
role_heading: Protocol
path: fskit/fsvolume/handler
---

# FSVolume.Handler

Methods that all volumes implement to provide required capabilities.

## Declaration

```swift
protocol Handler : FSVolume.PathConfOperations
```

## Overview

Overview Conform to this protocol in your subclass of FSVolume. To provide additional capabilities, conform to the other FSVolume handler protocols, such as FSVolume.OpenCloseHandler and FSVolume.ReadWriteHandler. note: This protocol extends FSVolume.PathConfOperations, so your volume implementation must also conform to that protocol. important: This protocol replaces the FSVolume.Operations protocol. It exposes the same functionality, while using FSVolumeHandlerResult objects. These objects add the ability to reply with FSItem.Attributes and free space from the relevant methods.

## Topics

### Handling activation and deactivation

- [activate(options:replyHandler:)](fskit/fsvolume/handler/activate(options:replyhandler:).md)
- [FSItem](fskit/fsitem.md)
- [FSActivateResult](fskit/fsactivateresult.md)
- [deactivate(options:replyHandler:)](fskit/fsvolume/handler/deactivate(options:replyhandler:).md)
- [FSDeactivateOptions](fskit/fsdeactivateoptions.md)

### Mounting and unmounting

- [mount(options:replyHandler:)](fskit/fsvolume/handler/mount(options:replyhandler:).md)
- [unmount(replyHandler:)](fskit/fsvolume/handler/unmount(replyhandler:).md)

### Working with items

- [createItem(named:type:in:attributes:context:replyHandler:)](fskit/fsvolume/handler/createitem(named:type:in:attributes:context:replyhandler:).md)
- [FSFileName](fskit/fsfilename.md)
- [FSItem.ItemType](fskit/fsitem/itemtype.md)
- [FSItem.SetAttributesRequest](fskit/fsitem/setattributesrequest.md)
- [FSCreateItemResult](fskit/fscreateitemresult.md)
- [lookupItem(named:in:context:replyHandler:)](fskit/fsvolume/handler/lookupitem(named:in:context:replyhandler:).md)
- [FSLookupItemResult](fskit/fslookupitemresult.md)
- [removeItem(_:named:from:context:replyHandler:)](fskit/fsvolume/handler/removeitem(_:named:from:context:replyhandler:).md)
- [FSRemoveItemResult](fskit/fsremoveitemresult.md)
- [renameItem(_:inDirectory:named:to:inDirectory:overItem:context:replyHandler:)](fskit/fsvolume/handler/renameitem(_:indirectory:named:to:indirectory:overitem:context:replyhandler:).md)
- [FSRenameItemResult](fskit/fsrenameitemresult.md)
- [reclaimItem(_:replyHandler:)](fskit/fsvolume/handler/reclaimitem(_:replyhandler:).md)

### Working with links

- [createLink(to:named:in:context:replyHandler:)](fskit/fsvolume/handler/createlink(to:named:in:context:replyhandler:).md)
- [FSCreateLinkResult](fskit/fscreatelinkresult.md)
- [createSymbolicLink(named:in:attributes:linkContents:context:replyHandler:)](fskit/fsvolume/handler/createsymboliclink(named:in:attributes:linkcontents:context:replyhandler:).md)
- [FSCreateSymlinkResult](fskit/fscreatesymlinkresult.md)
- [readSymbolicLink(_:context:replyHandler:)](fskit/fsvolume/handler/readsymboliclink(_:context:replyhandler:).md)
- [FSReadSymlinkResult](fskit/fsreadsymlinkresult.md)

### Working with attributes

- [getAttributes(_:of:context:replyHandler:)](fskit/fsvolume/handler/getattributes(_:of:context:replyhandler:).md)
- [FSItem.GetAttributesRequest](fskit/fsitem/getattributesrequest.md)
- [FSGetAttributesResult](fskit/fsgetattributesresult.md)
- [setAttributes(_:on:context:replyHandler:)](fskit/fsvolume/handler/setattributes(_:on:context:replyhandler:).md)
- [FSItem.SetAttributesRequest](fskit/fsitem/setattributesrequest.md)
- [FSSetAttributesResult](fskit/fssetattributesresult.md)

### Inspecting directory contents

- [enumerateDirectory(_:startingAt:verifier:attributes:packer:context:replyHandler:)](fskit/fsvolume/handler/enumeratedirectory(_:startingat:verifier:attributes:packer:context:replyhandler:).md)
- [FSDirectoryCookie](fskit/fsdirectorycookie.md)
- [FSDirectoryCookie](fskit/fsdirectorycookie.md)
- [FSDirectoryVerifier](fskit/fsdirectoryverifier.md)
- [FSDirectoryVerifier](fskit/fsdirectoryverifier.md)
- [FSDirectoryEntryPacker](fskit/fsdirectoryentrypacker.md)
- [FSEnumerateDirectoryResult](fskit/fsenumeratedirectoryresult.md)

### Performing synchronization

- [synchronize(flags:replyHandler:)](fskit/fsvolume/handler/synchronize(flags:replyhandler:).md)
- [FSSyncFlags](fskit/fssyncflags.md)

### Inspecting required volume properties

- [supportedVolumeCapabilities](fskit/fsvolume/handler/supportedvolumecapabilities.md)
- [FSVolume.SupportedCapabilities](fskit/fsvolume/supportedcapabilities.md)
- [volumeStatistics](fskit/fsvolume/handler/volumestatistics.md)
- [FSStatFSResult](fskit/fsstatfsresult.md)

### Inspecting optional volume properties

- [requestedMountOptions](fskit/fsvolume/handler/requestedmountoptions.md)
- [FSVolume.MountOptions](fskit/fsvolume/mountoptions.md)
- [enableOpenUnlinkEmulation](fskit/fsvolume/handler/enableopenunlinkemulation.md)

### Supporting types

- [FSContext](fskit/fscontext.md)

## Relationships

### Inherits From

- [FSVolume.PathConfOperations](fskit/fsvolume/pathconfoperations.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Implementing required handlers

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