平时习惯了./
和../
作为访问目录的路径,但今天使用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())
}
}
后面查询了一下,.和..是表示目录,而./和../表示目录下,应该是这个原因吧
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容