使用os.Stat获取文件权限,os.Chmod修改权限,os.OpenFile创建时指定权限。示例显示0600仅所有者读写,0644所有者读写、其他只读,0755用于可执行文件,在Unix-like系统生效,Windows支持有限。

在Go语言中操作文件权限,主要依赖于os包和io/fs模块提供的功能。文件权限控制对系统安全和多用户环境下的资源访问至关重要。本文将介绍如何查看和修改文件权限,并提供实用示例。
使用os.Stat()可以获取文件的元信息,包括权限、大小、修改时间等。通过返回的os.FileInfo对象调用Mode()方法可提取权限位。
package main
import (
"fmt"
"os"
)
func main() {
info, err := os.Stat("example.txt")
if err != nil {
fmt.Println("无法读取文件:", err)
return
}
fmt.Printf("文件权限: %s\n", info.Mode().Perm())
}
输出结果类似 -rw-r--r--,表示所有者可读写,组和其他用户仅可读。
使用os.Chmod()函数可更改指定文件的权限。该函数接收文件路径和fs.FileMode类型的权限值。
立即学习“go语言免费学习笔记(深入)”;
err := os.Chmod("example.txt", 0600)
if err != nil {
fmt.Println("修改权限失败:", err)
return
}
fmt.Println("权限已更改为 0600(仅所有者读写)")
常见权限模式:
使用os.OpenFile()创建新文件时,可通过第三个参数设置初始权限。
file, err := os.OpenFile(
"newfile.txt",
os.O_CREATE|os.O_WRONLY,
0600,
)
if err != nil {
fmt.Println("创建文件失败:", err)
return
}
defer file.Close()
file.WriteString("这是私有文件内容")
这里创建的文件仅允许所有者读写,增强安全性。
基本上就这些。掌握os.Stat、os.Chmod和os.OpenFile的使用,就能有效管理Go程序中的文件权限。注意权限数字采用八进制格式,且在Unix-like系统中生效,在Windows上部分权限可能不被完全支持。
以上就是Golang文件权限管理与修改示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号