在 https://pkg.go.dev/path/filepath#Walk代码示例是// +build !windows,!plan9package mainimport ( "fmt" "io/fs" "os" "path/filepath")func prepareTestDirTree(tree string) (string, error) { tmpDir, err := os.MkdirTemp("", "") if err != nil { return "", fmt.Errorf("error creating temp directory: %v\n", err) } err = os.MkdirAll(filepath.Join(tmpDir, tree), 0755) if err != nil { os.RemoveAll(tmpDir) return "", err } return tmpDir, nil}func main() { tmpDir, err := prepareTestDirTree("dir/to/walk/skip") if err != nil { fmt.Printf("unable to create test dir tree: %v\n", err) return } defer os.RemoveAll(tmpDir) os.Chdir(tmpDir) subDirToSkip := "skip" fmt.Println("On Unix:") err = filepath.Walk(".", func(path string, info fs.FileInfo, err error) error { if err != nil { fmt.Printf("prevent panic by handling failure accessing a path %q: %v\n", path, err) return err } if info.IsDir() && info.Name() == subDirToSkip { fmt.Printf("skipping a dir without errors: %+v \n", info.Name()) return filepath.SkipDir } fmt.Printf("visited file or dir: %q\n", path) return nil }) if err != nil { fmt.Printf("error walking the path %q: %v\n", tmpDir, err) return }}为什么围棋作者排除了窗户和计划9?
1 回答

缥缈止盈
TA贡献2041条经验 获得超4个赞
不知何故,此更改是与提交消息一起添加的
make Walk example runnable in the playground
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消