我使用此代码从目录中动态提取模板文件名:
files, _ := ioutil.ReadDir("./views")
htmlFiles := ".html"
for _, f := range files {
if strings.Contains(files, htmlFiles) {
fmt.Println(f.Name())
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
cannot use files (type []os.FileInfo) as type string in argument to strings.Contains
Run Code Online (Sandbox Code Playgroud)
那么,如何转换type []os.FileInfo为 a string(或者如何以更简单的方式做到这一点)?
返回的值ioutil.ReadDir是 a []os.FileInfo,它是接口的一部分。没有通用的方法可以将其转换为有意义的字符串。您想要单独比较每个文件的名称:
files, err := ioutil.ReadDir("./views")
if err != nil {
log.Fatal(err)
}
for _, f := range files {
if strings.HasSuffix(f.Name(), ".html") {
fmt.Println(f.Name())
}
}
Run Code Online (Sandbox Code Playgroud)