我正在尝试通过以下方式实现缓存清除:
bundle.1947shkey7.js
)<script>
)标记dirpath
,从文件名filenameRegex
创建一个正则表达式,然后使用dirpath
,filenameRegex
查找文件并为其形成标签。其中大多数已经在起作用,除了我不知道如何最好地进行基于正则表达式的查找。
该文件的正则表达式类似于[name].\\w+.[ext]
,以供参考。这行得通,我已经测试过了。
但是,如何使用该正则表达式和dirpath获取实际文件的路径?我知道我们可以做类似
的操作filepath.Walk(dirpath, func(path string, info os.FileInfo, err error) error {
// logic to check info.IsDir(), info.Name(), and written actual filename
})
但是有一个问题:复杂性。如果我正确理解,将对目录dirname
中的每个文件执行!
这是通过正则表达式查找资产文件名的唯一方法,还是有一种更简单的方法?
答案 0 :(得分:0)
你可以使用这样的东西,你可以自定义回调到你的 需求:
package main
import (
"io/fs"
"path/filepath"
)
func glob(root string, fn func(string)bool) []string {
var files []string
filepath.WalkDir(root, func(s string, d fs.DirEntry, e error) error {
if fn(s) {
files = append(files, s)
}
return nil
})
return files
}
func main() {
files := glob(".", func(s string) bool {
return filepath.Ext(s) == ".js"
})
for _, file := range files {
println(file)
}
}