Golang embed 库全面解析:从基础到高级应用
package main
import (
"embed"
"io/fs"
"log"
)
// 使用go:embed指令来嵌入文件或目录
// 这里嵌入的是当前目录下的 "example" 目录
//go:embed example
var exampleFiles embed.FS
// 使用ephemeral OS command execution to list files in the embedded directory
func listFiles(fsys fs.FS) {
list, err := fsys.ReadDir(".")
if err != nil {
log.Fatal(err)
}
for _, file := range list {
log.Println(file.Name())
}
}
func main() {
// 将嵌入的文件系统转换为标准的fs.FS类型
fsys := embed.FS(exampleFiles)
// 列出嵌入的文件系统中的文件和目录
log.Println("Listing files in the embedded 'example' directory:")
listFiles(fsys)
}
这段代码演示了如何使用embed
库来嵌入一个目录,并在程序中列出该目录下的所有文件和子目录。代码中使用了go:embed
指令来指定需要嵌入的文件或目录,并通过embed.FS
类型进行操作。最后,通过转换为fs.FS
类型,我们可以使用标准库中的文件系统操作函数来读取和处理这些内嵌的文件。
评论已关闭