使用golang怎么将文件嵌入到可执行程序

  介绍

今天就跟大家聊聊有关使用golang怎么将文件嵌入到可执行程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。


原理是使用<代码>:嵌入代码> 文件不是<代码> utf8> 测试过嵌入文件只能为源码文件同级目录和子目录下的文件,试过其他目录的绝对路径或相对路径会报错。
我测试过几个能想到的场景,有些会报错,所以在使用时需要注意。

package 主要   ,   import  (   _ 才能“embed"   )   ,//:embed 用法//var  testString  string 当前目录,解析为字符串类型   ,//:embed 用法   var  testByte  [] byte //,当前目录,解析为[]字节类型   ,//:embed 测试/用法//var  testAbsolutePath  string 子目录,解析为字符串类型   ,//:embed  notExistsFile//var  testErr0  string 文件不存在,编译报错:pattern  notExistsFile: no  matching  files 发现   ,//:embed  dir   var  testErr1  string //, dir是目录、编译报错:pattern  dir:, cannot  embed  directory  dir: contains  no  embeddable 文件   ,//去:embed  . ./用法//var  testErr2  string 相对路径,不是当前目录或子目录、编译报错:pattern  . ./用法:invalid  pattern 语法   ,//:embed  D: \用法//var  testErr3  string 绝对路径,编译报错:pattern  D: \用法:no  matching  files 发现   ,   func  main (), {   println (testString)才能   println才能(string (testByte))   println (testAbsolutePath)才能   }

嵌入文件列表

package 主要   ,   import  (   “才能embed"   “才能无力偿贷;   “才能os"   )   ,//去:embed  test0.txt  test1.txt  test1 * . txt//去:embed 测试/test0.txt 测试/test1.txt//:embed 电平   var  fileList  embed.FS/*   使用上述方法可以将多个文件或目录添加到文件列表中。   1只添加多个文件,且支持“*”号通配文件。   2只支持子目录文件。   3只支持嵌入一个目录。   */,   func  main (), {   ,,,err  testDir:=, fileList.ReadDir (“test0")   if 才能;err  !=, nil  {   ,,,恐慌(err)   ,,}   for 才能,_,v :=, range  testDir  {   ,,,println (v.Name()),//,打印嵌入的目录内容   ,,}   ,//,才能使用fileList.Open可以生成一个对象,可以通过文件流那样读出来   测试文件,才能,err :=, fileList.Open (“test0.txt")   if 才能;err  !=, nil  {   ,,,恐慌(err)   ,,}   io.Copy才能(os.Stdout,测试文件)   ,   测试文件,才能,err =, fileList.Open (“test112.txt")   if 才能;err  !=, nil  {   ,,,恐慌(err)   ,,}   io.Copy才能(os.Stdout,测试文件)   ,   测试文件,才能,err =, fileList.Open(“测试/test1.txt")   if 才能;err  !=, nil  {   ,,,恐慌(err)   ,,}   io.Copy才能(os.Stdout,测试文件)   ,//,才能直接将文件内容读出来   数据,才能,err :=, fileList.ReadFile (“test111.txt")   if 才能;err  !=, nil  {   ,,,恐慌(err)   ,,}   println才能(字符串(数据))   }

看完上述内容,你们对使用golang怎么将文件嵌入到可执行程序有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

使用golang怎么将文件嵌入到可执行程序