首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么filepath.Walk示例有不包括windows和plan9的生成标记?

为什么filepath.Walk示例有不包括windows和plan9的生成标记?
EN

Stack Overflow用户
提问于 2021-08-12 07:20:36
回答 1查看 68关注 0票数 1

https://pkg.go.dev/path/filepath#Walk

代码示例是

代码语言:javascript
复制
// +build !windows,!plan9

package main

import (
    "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
    }
}

为什么go作者不包括windows和plan9?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 07:30:06

不知何故,此更改是与提交消息一起添加的。

make Walk example runnable in the playground

的评论

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68753179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档