如何使用 Go 在 Windows 上获取文件所有者?

T.G*_*ard 5 windows file go

我正在尝试使用 Go 在 Windows 上获取文件所有者,但在几个小时后找到任何帮助真是太痛苦了,src我发现了这个:

// TODO(brainman): fix all needed for os
func Fchdir(fd Handle) (err error)             { return EWINDOWS }
func Link(oldpath, newpath string) (err error) { return EWINDOWS }
func Symlink(path, link string) (err error)    { return EWINDOWS }

func Fchmod(fd Handle, mode uint32) (err error)        { return EWINDOWS }
func Chown(path string, uid int, gid int) (err error)  { return EWINDOWS }
func Lchown(path string, uid int, gid int) (err error) { return EWINDOWS }
func Fchown(fd Handle, uid int, gid int) (err error)   { return EWINDOWS }

func Getuid() (uid int)                  { return -1 }
func Geteuid() (euid int)                { return -1 }
func Getgid() (gid int)                  { return -1 }
func Getegid() (egid int)                { return -1 }
func Getgroups() (gids []int, err error) { return nil, EWINDOWS }
Run Code Online (Sandbox Code Playgroud)

这是否意味着还不可能?

我可能错过了一些东西,任何帮助将不胜感激。

pet*_*rSO 3

文件和安全系统是特定于操作系统的。Go 是以 Linux、Darwin 和其他类 Unix 操作系统为蓝本的。Go Windows 端口模拟大多数东西,但是,正如您所发现的,并不是所有东西(有些只是存根)。如果您需要的功能不在 Go 标准库中,请寻找独立编写的开源 Go 包。最后的手段是编写您自己的 Microsoft Windows API 接口。

  • 在发布我的问题后我发现很少。顺便说一句,我在 github 上找到了这个库,它可能会有所帮助。https://github.com/hectane/go-acl (2认同)