在尝试区分 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)
}
- 1 回答
- 0 关注
- 294 浏览
添加回答
举报
0/150
提交
取消