基本使用示例
首先在项目下建立一个static
文件夹(当然名字随意命名,没有规定),然后在下面创建几个文件,分别在文件里填入我是s1/s2/s3文件里的具体如下目录结构
网络异常,图片无法展示
|
导入为string
package main import ( _ "embed" "fmt" ) //go:embed static/s1.txt var content string func main() { fmt.Printf("静态文件内容:%s\n",content) }
输出:
静态文件内容:我是s1文件里的
导入为[]byte
package main import ( _ "embed" "fmt" ) //go:embed static/s1.txt var content []byte func main() { fmt.Printf("静态文件内容:%s\n",string(content)) }
输出:
静态文件内容:我是s1文件里的
导入为FS文件系统
Open方法
package main import ( "embed" "fmt" ) //go:embed static var content embed.FS func main() { // 打开FS文件系统下路径为`static/s1.txt`的文件 file,err:=content.Open("static/s1.txt") defer file.Close() if err != nil { fmt.Println(err) } // 读取File的数据 var c = make([]byte,30) l,err:=file.Read(c) fmt.Printf("Open的内容:%s\n",c) fmt.Printf("Open读取的内容长度:%d\n",l) }
输出:
Open的内容:我是s1文件里的 Open读取的内容长度:20
ReadDir方法
package main import ( "embed" "fmt" ) //go:embed static var content embed.FS func main() { // 打开文件 files,err:=content.ReadDir("static") if err != nil { fmt.Println(err) } for _,f:=range files{ fmt.Printf("文件名:%s\n",f.Name()) fmt.Print("是否是文件夹:") fmt.Println(f.IsDir()) fileInfo,_:=f.Info() fmt.Printf("文件权限:%s\n",fileInfo.Mode()) fmt.Println("--------------------------------------") } }
输出:
文件名:s1.txt 是否是文件夹:false 文件权限:-r--r--r-- -------------------------------------- 文件名:s2.txt 是否是文件夹:false 文件权限:-r--r--r-- -------------------------------------- 文件名:s3.txt 是否是文件夹:false 文件权限:-r--r--r-- --------------------------------------
ReadFile方法
package main import ( "embed" "fmt" ) //go:embed static var content embed.FS func main() { c2,_:=content.ReadFile("static/s1.txt") fmt.Printf("ReadFile内容:%s\n",c2) }
输出:
ReadFile内容:我是s1文件里的