如何将类型 []os.FileInfo 转换为字符串?

Pau*_*iro 1 go

我使用此代码从目录中动态提取模板文件名:

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(或者如何以更简单的方式做到这一点)?

Jim*_*imB 5

返回的值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)