加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang正确实例化os.FileMode

发布时间:2020-12-16 19:28:49 所属栏目:大数据 来源:网络整理
导读:我看到无数的例子和教程,显示如何创建一个文件和所有的“欺骗”,只需设置文件的权限位.我想知道/找出如何正确地实例化os.FileMode以在文件的创建/更新期间提供给作者. 一个粗略的例子如下: func FileWrite(path string,r io.Reader,uid,gid int,perms strin
我看到无数的例子和教程,显示如何创建一个文件和所有的“欺骗”,只需设置文件的权限位.我想知道/找出如何正确地实例化os.FileMode以在文件的创建/更新期间提供给作者.

一个粗略的例子如下:

func FileWrite(path string,r io.Reader,uid,gid int,perms string) (int64,error){
    w,err := os.OpenFile(path,os.O_WRONLY|os.O_CREATE|os.O_TRUNC,0664)
    if err != nil {
        if path == "" {
            w = os.Stdout
        } else {
            return 0,err
        }
    }
    defer w.Close()

    size,err := io.Copy(w,r)

    if err != nil {
        return 0,err
    }
    return size,err
}

在上面的基本功能中,权限位0664被设置,虽然这可能有意义,但是我更喜欢正确的设置文件模式的方式.如上所述,一个常见的例子是UID / GID是已知的,并且已经作为int值提供,并且perms是先前收集并作为字符串插入到db中的八进制数字.

FileMode只是一个uint32. http://golang.org/pkg/os/#FileMode

通过常量进行设置不是“欺骗”,您可以像其他数值一样使用它.如果您不使用常数,则可以对有效的数值使用转换:

mode := int(0777)
os.FileMode(mode)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读