update go.mod
This commit is contained in:
@@ -4,8 +4,10 @@ import (
|
||||
"errors"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// 将字符串写入文件
|
||||
func StringToFile(path, content string) error {
|
||||
startF, err := os.Create(path)
|
||||
if err != nil {
|
||||
@@ -18,3 +20,44 @@ func StringToFile(path, content string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 递归遍历文件夹
|
||||
// rootDir: 文件夹根目录
|
||||
// s: 存储文件名的切片
|
||||
// filter: 过滤条件:".git", ".idea", ".vscode", ".gitignore", ".gitea", ".github", ".golangci.yml", "*.pyc"
|
||||
func FileTree(rootDir string, s []string, filter []string) ([]string, error) {
|
||||
rd, err := os.ReadDir(rootDir)
|
||||
if err != nil {
|
||||
return s, err
|
||||
}
|
||||
for _, fi := range rd {
|
||||
// 检查文件名是否匹配任何一个过滤模式
|
||||
matched := false
|
||||
for _, item := range filter {
|
||||
exists, err := filepath.Match(item, fi.Name())
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
if exists {
|
||||
matched = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if matched {
|
||||
continue
|
||||
}
|
||||
|
||||
if fi.IsDir() {
|
||||
fullDir := rootDir + "/" + fi.Name()
|
||||
s, err = FileTree(fullDir, s, filter)
|
||||
if err != nil {
|
||||
return s, err
|
||||
}
|
||||
} else {
|
||||
fullName := rootDir + "/" + fi.Name()
|
||||
s = append(s, fullName)
|
||||
}
|
||||
}
|
||||
return s, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user