当试图告诉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
我可以使用任何bash命令来检测它吗?
我的想法已经不多了:(
答案 0 :(得分:3)
我看到的唯一测试(我刚刚在Windows上使用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()
(in this test):
if !SameFile(tostat, fromstat) {
t.Errorf("symlink %q, %q did not create symlink", to, from)
}