Windows符号链接和目录

时间:2015-09-24 05:21:50

标签: windows go symlink

当试图告诉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命令来检测它吗?

我的想法已经不多了:(

1 个答案:

答案 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)
}