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)
Prints:
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()已知是片状的)。
可能相关:将 interface{} 转换为 Golang 中的映射
The reflect模块显示数据类型为Sys()
的回报是*syscall.Stat_t
,所以这似乎可以将文件的 Gid 作为字符串获取:
file_info, _ := os.Stat(abspath)
file_sys := file_info.Sys()
file_gid := fmt.Sprint(file_sys.(*syscall.Stat_t).Gid)
请告诉我是否有更好的方法来做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)