---
page_title: file function reference
description: |-
  The `file` function reads the contents of a file and returns it as a string. Learn how to use the `file` function in Packer templates.
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# `file` Function

`file` reads the contents of a file at the given path and returns them as
a string.

```hcl
file(path)
```

Strings in the Packer language are sequences of Unicode characters, so
this function will interpret the file contents as UTF-8 encoded text and
return the resulting Unicode characters. If the file contains invalid UTF-8
sequences then this function will produce an error.

This function can be used only with files that already exist on disk
at the beginning of a Packer run. Functions do not participate in the
dependency graph, so this function cannot be used with files that are generated
dynamically during a Packer operation.

## Examples

```shell-session
> file("${path.folder}/hello.txt")
Hello World
```

## Related Functions

- [`fileexists`](/packer/docs/templates/hcl_templates/functions/file/fileexists) determines whether a file exists
  at a given path.
