---
title: "setIcon(_:forFile:options:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsworkspace/seticon(_:forfile:options:)"
---

# setIcon(_:forFile:options:)

Sets the icon for the file or directory at the specified path.

## Declaration

```swift
func setIcon(_ image: NSImage?, forFile fullPath: String, options: NSWorkspace.IconCreationOptions = []) -> Bool
```

## Parameters

- `image`: The image to use as the icon for the file or directory.
- `fullPath`: The full path of the file or directory.
- `options`: The icon representations to generate from the image. You specify this value by combining the appropriate doc://com.apple.appkit/documentation/AppKit/NSWorkspace/IconCreationOptions constants, using the C bitwise OR operator. Specify 0 if you want to generate icons in all available icon representation formats.

## Return Value

Return Value true if the icon was set; otherwise, false.

## Discussion

Discussion The image can be an arbitrary image, with or without transparency. The method automatically scales this image (as needed) to generate the icon representations. The file or folder must exist and be writable by the user. This method uses the image to set an icon with a size of 512 pixels by 512 pixels. If you specify the exclude10_4ElementsIconCreationOption option (not recommended), this method creates an icon that is compatible with the Finder from macOS 10.2 or earlier. You can safely call this method from any of your app’s threads, but you must call it from only one thread at a time.

## See Also

### Managing Icons

- [icon(forFile:)](appkit/nsworkspace/icon(forfile:).md)
- [icon(forFiles:)](appkit/nsworkspace/icon(forfiles:).md)
- [icon(for:)](appkit/nsworkspace/icon(for:).md)
- [NSWorkspace.IconCreationOptions](appkit/nsworkspace/iconcreationoptions.md)
