|
|
![]()
package main |
|
Import the |
import ( "embed" ) |
|
embed directives accept paths relative to the directory containing the
Go source file. This directive embeds the contents of the file into a
|
//go:embed folder/single_file.txt var fileString string |
|
Or embed the contents of the file into a |
//go:embed folder/single_file.txt var fileByte []byte |
|
We can also embed multiple files or even folders with wildcards. This uses a variable of the embed.FS type, which implements a simple virtual file system. |
//go:embed folder/single_file.txt //go:embed folder/*.hash var folder embed.FS |
func main() { |
|
|
Print out contents of |
print(fileString)
print(string(fileByte))
|
|
Retrieve some files from the embedded folder. |
content1, _ := folder.ReadFile("folder/file1.hash")
print(string(content1))
|
content2, _ := folder.ReadFile("folder/file2.hash") print(string(content2)) } |
|
Use these commands to run the example. (Note: due to limitation on go playground, this example can only be run on your local machine.) |
$ mkdir -p folder $ echo "hello go" > folder/single_file.txt $ echo "123" > folder/file1.hash $ echo "456" > folder/file2.hash |
$ go run embed-directive.go hello go hello go 123 456 |
Next example: Testing and Benchmarking.