2021-12-13 来源:华纳网 责任编辑:韩玉玲 人气:
核心提示:非常方便的程序内嵌资源文件

知识点:

内嵌资源文件
 

 

本课内容:

大家好,欢迎来到谷雨课堂

 

我们日常进行程序开发时,

免不了要引用大量的资源文件,

比如做网站时需要使用很多图片、JS、CSS,

做其它类型的软件也要引用一些不同类型的文件,

 

通常在进行程序部署时,

我们需要将这些文件同程序一起复制到最终的电脑里,

 

所以,在不少语言中都提供了资源文件这个功能,

C++、.Net甚至Delphi都有这些功能

 

所以,我们的Go语言当然也是支持这种功能,

不过使用上是更简单,

我们只需简单的使用

 

  •  
  •  
//go:embd dir/filenamevar 变量 string

 

 

就可以把指定的目录或文件直接导到的变量中了,

 

没有任何其它的步骤了,

 

引入后,

我们就可以任何使用这些变量了,

同其它变量一样,

没有任何的区别。

 

程序开发完毕后,进行打包

  •  
go build .

 

可以直接输出包含所有指定资源文件的二进制可执行文件。

 

非常的方便,

 

经过长时间的实际使用,

其效率和性能可以达到预期,

无需担心性能的问题。

 

不过有一点,

这引起嵌入的资源文件是只读的,

不能进行修改,

 

如果你的程序需要对文件进行修改、删除等操作,

可以参考

No.040 Go干货!非常好用KV数据库BoltDB

这个KV数据库,

可以实现你需要的功能。

 

 

 

下面是示例代码:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
//谷雨课堂//No.048 Go干货!非常方便的程序内嵌资源文件
package main
import ("embed""fmt")
//go:embed imgsvar imgs embed.FS
//go:embed a.txtvar txt1 []byte
//go:embed a.txtvar txt2 string
func main() {  fmt.Println(len(txt1))  fmt.Println(txt1)  fmt.Println(txt2)
  x, _ := imgs.ReadDir("imgs")for i := 0; i < len(x); i++ {    fmt.Println(x[i].Name())  }}

完整的源代码可以登录【华纳网】下载。

https://www.worldwarner.com/




 





免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。