用golang映射Windows驱动器的最佳方法是什么?

4

@Nadh:所问问题是如何映射网络驱动器,而不是如何列出(网络)驱动器。 - Peter Gloor
啊,是的,我错了。已经删除了标记。 - Nadh
1个回答

0

目前在Go中没有直接的方法来实现这一点;我建议使用net use,当然这限制了功能只能在Windows上使用,但这正是你需要的。

因此,在Windows中打开命令提示符时,您可以通过使用以下命令将网络共享映射到Windows驱动器:

net use Q: \\SERVER\SHARE /user:Alice pa$$word /P

Q:代表您的Windows驱动器,\\SERVER\SHARE是网络地址,/user:Alice pa$$word是您的凭据,/P用于持久性。

在Go中执行此操作将看起来像:

func mapDrive(letter string, address string, user string, pw string) ([]byte, error) {
  // return combined output for std and err
  return exec.Command("net use", letter, address, fmt.Sprintf("/user:%s", user), pw, "/P").CombinedOutput()
}

func main() {
  out, err := mapDrive("Q:", `\\SERVER\SHARE`, "Alice", "pa$$word")
  if err != nil {
    log.Fatal(err)
  }
  // print whatever comes out
  log.Println(string(out))
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接