为了账号安全,请及时绑定邮箱和手机立即绑定

GOLANG: Walk Directory Tree and Process Files

GOLANG: Walk Directory Tree and Process Files

Go
函数式编程 2021-07-07 17:50:45
我正在编写一个例程来遍历目录树并为我找到的每个文件创建一个数字签名(salted-hash)。在测试它时,我得到了这种奇怪的行为 - 如果我给程序一个目录“上方”的根路径,程序可以遍历树并打印出文件名,但是如果我尝试打开文件以读取它的字节,我在例程找到的文件上获取错误消息“没有这样的文件或目录” - 不确定这里给出了什么。Walk() 例程如何“看到”文件,但 ioutil.ReadFile() 无法找到它?示例代码:// start with path higher up the tree, say $HOMEfunc doHashWalk(dirPath string) {    err := filepath.Walk(dirPath, walkFn)    // Check err here}func walkFn(path string, fi os.FileInfo, err error) (e error) {    if !fi.IsDir() {        // if the first character is a ".", then skip it as it's a hidden file        if strings.HasPrefix(fi.Name(), ".") {            return nil        }        // read in the file bytes -> get the absolute path        fullPath, err := filepath.Abs(fi.Name())        if err != nil {            log.Printf("Abs Err: %s", err)        }        // THIS ALWAYS FAILED WITH ERROR        bytes, err := ioutil.ReadFile(fullPath) // <-- (fi.Name() also doesn't work)        if err != nil {            log.Printf("Err: %s, Bytes: %d", err, len(bytes))             }        // create the salted hash        ...    }    return nil}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信