---
title: "getAttributes(_:of:replyHandler:)"
framework: fskit
role: symbol
role_heading: Instance Method
path: "fskit/fsvolume/operations/getattributes(_:of:replyhandler:)"
---

# getAttributes(_:of:replyHandler:)

Fetches attributes for the given item.

## Declaration

```swift
func getAttributes(_ desiredAttributes: FSItem.GetAttributesRequest, of item: FSItem, replyHandler reply: @escaping @Sendable (FSItem.Attributes?, (any Error)?) -> Void)
```

```swift
func attributes(_ desiredAttributes: FSItem.GetAttributesRequest, of item: FSItem) async throws -> FSItem.Attributes
```

## Parameters

- `desiredAttributes`: A requested set of attributes to get. The implementation inspects the request’s doc://FSKit/documentation/FSKit/FSItem/GetAttributesRequest/wantedAttributes to determine which attributes to populate.
- `item`: The item to get attributes for.
- `reply`: A block or closure to indicate success or failure. If getting attributes succeeds, pass an doc://FSKit/documentation/FSKit/FSItem/Attributes with the requested attributes populated and a nil error. If getting attributes fails, pass the relevant error as the second parameter; FSKit ignores any doc://FSKit/documentation/FSKit/FSItem/Attributes in this case. For an async Swift implementation, there’s no reply handler; simply return the doc://FSKit/documentation/FSKit/FSItem/Attributes or throw an error.

## Discussion

Discussion For file systems that don’t support hard links, set linkCount to 1 for regular files and symbolic links. If the item’s bsdFlags contain the UF_COMPRESSED flag, your file system returns the uncompressed size of the file.
