代码拉取完成,页面将自动刷新
package util
import (
"os"
"path"
"path/filepath"
"strings"
)
// 获取当前可执行文件名(不含扩展名)
func GetProgramFileBaseName() string {
_, file := filepath.Split(os.Args[0])
if len(file) > 0 {
ext := path.Ext(file)
if len(ext) > 0 {
file = strings.TrimSuffix(file, ext)
}
}
return file
}
// 如果目录不存在创建指定目录
func IsDirOrFileExist(path string) error {
_, err := os.Stat(path)
if err != nil {
if os.IsNotExist(err) {
return err
}
panic(err)
}
return nil
}
// 如果目录不存在创建指定目录
func MustMkdirIfNotExist(path string) {
if err := IsDirOrFileExist(path); err != nil {
os.MkdirAll(path, os.ModePerm)
}
}
func Walk(dir string, extend string, whiteList []string, blackList []string, fn func(path string, info os.FileInfo, name string, isInBlackList bool) bool) (err error) {
absDir, err := filepath.Abs(dir)
if err != nil {
return
}
if len(whiteList) > 0 {
for _, w := range whiteList {
path := filepath.Join(absDir, w+"."+extend)
info, err := os.Lstat(path)
if err != nil {
continue
}
if !fn(path, info, w, false) {
break
}
}
} else {
ms, err := filepath.Glob(filepath.Join(absDir, "*."+extend))
if err != nil {
return err
}
for _, path := range ms {
info, err := os.Lstat(path)
if err != nil {
continue
}
name := strings.TrimSuffix(info.Name(), "."+extend)
var isInBlackList bool
if len(blackList) > 0 {
for _, n := range blackList {
if name == n {
isInBlackList = true
break
}
}
}
if !fn(path, info, name, isInBlackList) {
break
}
}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。