golang中的fs.ReadDir
  4TZgpYQHb2jY 2023年12月22日 32 0
Go

平时习惯了./../作为访问目录的路径,但今天使用golang中fs.ReadDir这个函数的时候发现这个习惯是不正确的。

但是常用的命令并没有分很清楚.和./
在这几个命令中使用.或./都可以到达目录下

ls
cd

错误示范

package main

import (
	"fmt"
	"io/fs"
	"os"
)

func main() {
	fsfile := os.DirFS("./")
	dir, err := fs.ReadDir(fsfile, "./")
	if err != nil {
		return
	}
	for _, file := range dir {
		fmt.Println(file.Name())
	}

}

这样写的话err会出现如下提示(奇怪的是在使用1.22.1rc这个版本中,没有任何提示,而在1.21.5版本中会出现提示没有这个目录)

readdir ./: invalid argument

这是正确的代码

package main

import (
	"fmt"
	"io/fs"
	"os"
)

func main() {
	fsfile := os.DirFS(".") //这里使用./或者.都可以
	dir, err := fs.ReadDir(fsfile, ".")
	if err != nil {
		return
	}
	for _, file := range dir {
		fmt.Println(file.Name())
	}

}

后面查询了一下,.和..是表示目录,而./和../表示目录下,应该是这个原因吧

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
  uGYzDadp0Cs7   2024年04月18日   78   0   0 Go
  hyrB1Ag4eVs8   2024年04月15日   68   0   0 Go
  dHUS172Lkv6A   2024年05月08日   173   0   0 Go
  YFCZjJLTjJgW   2024年05月04日   51   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   57   0   0 Go
  uGYzDadp0Cs7   2024年04月16日   117   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   57   0   0 Go
4TZgpYQHb2jY
作者其他文章 更多