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

windows符号链接和目录的区别

windows符号链接和目录的区别

Go
ABOUTYOU 2021-11-08 18:21:01
在尝试区分 Windows 符号链接和目录时,我遇到了 Go 问题。我用谷歌搜索,我能找到的只有这个:https : //github.com/golang/go/issues/3498#issuecomment-142810957不幸的是,它已关闭且未在处理中。所以我的问题是,有什么解决方法吗?我试图用符号链接列出路径,但它返回的结果与在空目录中返回的相同。使用 python 我能够做这样的事情:def test(dir):    try:        os.chdir(dir)    except Exception as e:        if "[Error 2]" in str(e):            return False        else:            return True有没有我可以用来从 go 调用来检测它的 bash 命令?我的想法快用完了:(
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我看到的唯一测试(我刚刚在 Windows 上使用 go 1.5.1 对其进行了测试)在os/os_test.go:


fromstat, err = Lstat(from)

if err != nil {

    t.Fatalf("lstat %q failed: %v", from, err)

}

if fromstat.Mode()&ModeSymlink == 0 {

    t.Fatalf("symlink %q, %q did not create symlink", to, from)

}

它使用os/#Lstat:


Lstat返回一个FileInfo描述命名的文件。

如果文件是符号链接,则返回FileInfo描述符号链接。Lstat不尝试点击链接。

如果有错误,它将是 类型*PathError。


您还可以获取os.Stat()相同的文件夹,然后调用os.Samefile()(如本测试中所示):


if !SameFile(tostat, fromstat) {

    t.Errorf("symlink %q, %q did not create symlink", to, from)

}


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

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