---
title: "lookupItem(name:in:packer:replyHandler:)"
framework: fskit
role: symbol
role_heading: Instance Method
path: "fskit/fsvolumekerneloffloadediooperations/lookupitem(name:in:packer:replyhandler:)"
---

# lookupItem(name:in:packer:replyHandler:)

Looks up an item within a directory and maps its disk space.

## Declaration

```swift
func lookupItem(name: FSFileName, in directory: FSItem, packer: FSExtentPacker, replyHandler reply: @escaping @Sendable (FSItem?, FSFileName?, (any Error)?) -> Void)
```

```swift
func lookupItem(name: FSFileName, in directory: FSItem, packer: FSExtentPacker) async throws -> (FSItem, FSFileName)
```

## Parameters

- `name`: The name of the file to look up.
- `directory`: The directory in which to look up the file.
- `packer`: An extent packer you use to pack the file’s allocated disk space.
- `reply`: A block or closure to indicate success or failure. If lookup succeeds, pass the found doc://FSKit/documentation/FSKit/FSItem and its doc://FSKit/documentation/FSKit/FSFileName, along with a nil error. If lookup fails, pass the relevant error as the third parameter; FSKit ignores any doc://FSKit/documentation/FSKit/FSItem or doc://FSKit/documentation/FSKit/FSFileName in this case. For an async Swift implementation, there’s no reply handler; instead, return a tuple of the doc://FSKit/documentation/FSKit/FSItem and its doc://FSKit/documentation/FSKit/FSFileName or throw an error.

## Discussion

Discussion This method allows the module to opportunistically supply extents, avoiding future calls to blockmapFile(_:offset:length:flags:operationID:packer:replyHandler:). Only perform this technique opportunistically. In particular, don’t perform additional I/O to fetch extent data.
