在 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 }}為什么圍棋作者排除了窗戶和計(jì)劃9?
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
不知何故,此更改是與提交消息一起添加的
make Walk example runnable in the playground
- 1 回答
- 0 關(guān)注
- 82 瀏覽
添加回答
舉報(bào)
0/150
提交
取消