<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BackgroundAssets",
  "identifier" : "/documentation/BackgroundAssets/AssetPackManager/descriptor(for:searchingInAssetPackWithID:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Background Assets"
    ],
    "preciseIdentifier" : "s:16BackgroundAssets16AssetPackManagerC10descriptor3for011searchingIncD6WithID6System14FileDescriptorVAG0M4PathV_SSSgtKF"
  },
  "title" : "descriptor(for:searchingInAssetPackWithID:)"
}
-->

# descriptor(for:searchingInAssetPackWithID:)

Opens and returns a file descriptor for an asset file at the specified relative path.

```
nonisolated func descriptor(for path: FilePath, searchingInAssetPackWithID assetPackID: String? = nil) throws -> FileDescriptor
```

## Parameters

`path`

The relative path.

`assetPackID`

The ID of the asset pack in which to search for the file. By default, all downloaded asset packs are searched.

## Return Value

A descriptor for the opened file.

## Discussion> Important: It’s your responsibility to close the file descriptor when you’re done using it.

All asset packs share the same namespace, so you can treat the overall collection of downloaded asset packs as if it were a single root directory that contains all of your subdirectories and asset files, regardless of the specific asset pack in which any particular file resides. If there’s a path collision across multiple asset packs, then it’s undefined from which asset pack the file will be read unless you explicitly limit the search to a particular asset pack by passing a non-`nil` ID to the `assetPackID` parameter.

> Throws: ``doc://com.apple.backgroundassets/documentation/BackgroundAssets/ManagedBackgroundAssetsError/fileNotFound(at:)`` when no file is found at `path`.

> Throws: When the path is not relative or when some other error occurs while finding or opening the requested file.

> Remark: Use this method if you need low-level access to the file descriptor. If you don’t, then use ``doc://com.apple.backgroundassets/documentation/BackgroundAssets/AssetPackManager/contents(at:searchingInAssetPackWithID:options:)`` instead.

---

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)