go语言中对文件读写权限的检查,更改等功能的示例代码

2023-06-01 00:00:00 示例 读写 等功能

简单的对文件读写权限的操作代码示例

用到的函数:

os.Stat(),os.OpenFile(),os.IsPermission()

建议:

1、最好在linux系统下操作测试比较直观

2、最好不要用root及超级用户测试


我用的beego框架测试的


添加测试路由:

beego.Router("/test/aaa", &controllers.TestController{}, "get:Aaa")

示例代码:

package controllers

import (
"fmt"
"os"
)

// TestController  is a test control
type TestController struct {
//beego.Controller
BaseController
}


func (c *TestController) Aaa() {

c.Ctx.WriteString(`我是test控制器中的aaa方法`)

file := "logs/gblog.log"
info, _ := os.Stat(file)
qx := info.Mode()
//获取logs/gblog.log文件的权限
fmt.Println(file, "文件的权限是", qx)

//方法:
//使用os.OpenFile()函数并使用os.IsPermission()检查错误以查看文件是否有权限被拒绝错误。
//检查文件是否具有(读权限:os.O_RDONLY | 写权限:os.O_WRONLY)
f, err := os.OpenFile(file, os.O_RDONLY, 0666)
if err != nil {
if os.IsPermission(err) {
fmt.Println("没有(读取|写入)权限", f)
fmt.Println(err)
os.Exit(1)
}
}
f.Close()

//更改文件的读取、写入或执行权限
err := os.Chmod(file, 0777)
if err != nil {
fmt.Println(err)
}

}

截张图:

go文件权限操作.png

有兴趣的可以自行测试

相关文章