<!--
{
  "availability" : [
    "macOS: 15.4.0 - 27.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "FSKit",
  "identifier" : "/documentation/FSKit/FSVolume/Operations",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "FSKit"
    ],
    "preciseIdentifier" : "c:objc(pl)FSVolumeOperations"
  },
  "title" : "FSVolume.Operations"
}
-->

# FSVolume.Operations

Methods that all volumes implement to provide required capabilities.

```
protocol Operations : FSVolume.CommonOperations, FSVolume.PathConfOperations
```

## Overview

Conform to this protocol in your subclass of [`FSVolume`](/documentation/FSKit/FSVolume).
To provide additional capabilities, conform to the other `FSVolume` operations protocols, such as [`FSVolume.OpenCloseOperations`](/documentation/FSKit/FSVolume/OpenCloseOperations) and [`FSVolume.ReadWriteOperations`](/documentation/FSKit/FSVolume/ReadWriteOperations).

> Note: This protocol extends ``doc://FSKit/documentation/FSKit/FSVolume/PathConfOperations``, so your volume implementation must also conform to that protocol.

> Deprecated: Use ``doc://FSKit/documentation/FSKit/FSVolume/Handler`` instead.

## Topics

### Handling activation and deactivation

[`activate(options:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/activate(options:replyHandler:))

Activates the volume using the specified options.

[`FSItem`](/documentation/FSKit/FSItem)

A distinct object in a file hierarchy, such as a file, directory, symlink, socket, and more.

[`deactivate(options:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/deactivate(options:replyHandler:))

Tears down a previously initialized volume instance.

[`FSDeactivateOptions`](/documentation/FSKit/FSDeactivateOptions)

Options that affect the behavior of deactivate methods.

### Mounting and unmounting

### Working with items

[`createItem(named:type:inDirectory:attributes:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/createItem(named:type:inDirectory:attributes:replyHandler:))

Creates a new file or directory item.

[`FSFileName`](/documentation/FSKit/FSFileName)

The name of a file, expressed as a data buffer.

[`FSItem.ItemType`](/documentation/FSKit/FSItem/ItemType)

An enumeration of item types, such as file, directory, or symbolic link.

[`FSItem.SetAttributesRequest`](/documentation/FSKit/FSItem/SetAttributesRequest)

A request to set attributes on an item.

[`lookupItem(named:inDirectory:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/lookupItem(named:inDirectory:replyHandler:))

Looks up an item within a directory.

[`removeItem(_:named:fromDirectory:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/removeItem(_:named:fromDirectory:replyHandler:))

Removes an existing item from a given directory.

[`renameItem(_:inDirectory:named:to:inDirectory:overItem:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/renameItem(_:inDirectory:named:to:inDirectory:overItem:replyHandler:))

Renames an item from one path in the file system to another.

### Working with links

[`createLink(to:named:inDirectory:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/createLink(to:named:inDirectory:replyHandler:))

Creates a new hard link.

[`createSymbolicLink(named:inDirectory:attributes:linkContents:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/createSymbolicLink(named:inDirectory:attributes:linkContents:replyHandler:))

Creates a new symbolic link.

[`readSymbolicLink(_:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/readSymbolicLink(_:replyHandler:))

Reads a symbolic link.

### Working with attributes

[`getAttributes(_:of:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/getAttributes(_:of:replyHandler:))

Fetches attributes for the given item.

[`FSItem.GetAttributesRequest`](/documentation/FSKit/FSItem/GetAttributesRequest)

A request to get attributes from an item.

[`setAttributes(_:on:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/setAttributes(_:on:replyHandler:))

Sets the given attributes on an item.

[`FSItem.SetAttributesRequest`](/documentation/FSKit/FSItem/SetAttributesRequest)

A request to set attributes on an item.

### Inspecting directory contents

[`enumerateDirectory(_:startingAt:verifier:attributes:packer:replyHandler:)`](/documentation/FSKit/FSVolume/Operations/enumerateDirectory(_:startingAt:verifier:attributes:packer:replyHandler:))

Enumerates the contents of the given directory.

[`FSDirectoryCookie`](/documentation/FSKit/FSDirectoryCookie)

A value that indicates a location in a directory from which to enumerate.

[`FSDirectoryCookie`](/documentation/FSKit/FSDirectoryCookie)

A value that indicates a location in a directory from which to enumerate.

[`FSDirectoryVerifier`](/documentation/FSKit/FSDirectoryVerifier)

A tool to detect whether the directory contents changed since the last call to enumerate a directory.

[`FSDirectoryVerifier`](/documentation/FSKit/FSDirectoryVerifier)

A tool to detect whether the directory contents changed since the last call to enumerate a directory.

[`FSDirectoryEntryPacker`](/documentation/FSKit/FSDirectoryEntryPacker)

An object used to provide items during a directory enumeration.

### Synchronizing with a resource

[`FSSyncFlags`](/documentation/FSKit/FSSyncFlags)

Behavior flags for use with synchronization calls.

### Inspecting required volume properties

[`FSVolume.SupportedCapabilities`](/documentation/FSKit/FSVolume/SupportedCapabilities)

A type that represents capabilities supported by a volume, such as hard and symbolic links, journaling, and large file sizes.

[`FSStatFSResult`](/documentation/FSKit/FSStatFSResult)

A type used to report a volume’s statistics.

### Inspecting optional volume properties

[`FSVolume.MountOptions`](/documentation/FSKit/FSVolume/MountOptions)

Mount options to be requested from FSKit using the `requestedMountOptions` property.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)