为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Go 中获取文件的组 ID (GID)?

如何在 Go 中获取文件的组 ID (GID)?

Go
蓝山帝景 2023-07-10 09:29:26
os.Stat()返回一个FileInfo对象,该对象有一个Sys()方法,返回一个Interface{}没有方法的对象。虽然我能够fmt.Printf()“看到”“Gid”,但我无法以编程方式访问“Gid”。我如何在这里检索文件的“Gid”?file_info, _ := os.Stat(abspath) file_sys := file_info.Sys() fmt.Printf("File Sys() is: %+v", file_sys)印刷:File Sys() is: &{Dev:31 Ino:5031364 Nlink:1 Mode:33060 Uid:1616 Gid:31 X__pad0:0 Rdev:0 Size:32 Blksize:32768 Blocks:0 Atim:{Sec:1564005258 Nsec:862700000} Mtim:{Sec:1563993023 Nsec:892256000} Ctim:{Sec:1563993023 Nsec:893251000} X__unused:[0 0 0]}注意:我不需要便携式解决方案,它只需要在 Linux 上运行即可(值得注意,因为Sys()已知它很不稳定)。
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

该模块显示 的返回reflect数据类型是,因此这似乎可以将文件的 Gid 作为字符串获取:Sys()*syscall.Stat_t

file_info, _ := os.Stat(abspath)
file_sys := file_info.Sys()
file_gid := fmt.Sprint(file_sys.(*syscall.Stat_t).Gid)

请告诉我是否有更好的方法来做到这一点。


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信