登录
首页 >  Golang >  Go问答

由于文件权限问题,RemoveAll() 不应该工作

来源:stackoverflow

时间:2024-04-08 16:06:27 363浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《由于文件权限问题,RemoveAll() 不应该工作》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

err := os.RemoveAll(filePath)
    if err != nil {
        fmt.Println("cannot delete the file", err)
        return nil, err
    }

目前上面的代码正在删除具有只读(尝试过0444)文件权限的文件。

是否有任何特定的文件权限不允许我删除文件或文件夹?


解决方案


关键是对包含文件的目录具有写权限,如此例所示

package main

import (
        "fmt"
        "os"
)

func dostuff(p os.FileMode, n string) {

        err := os.Mkdir(n, 0700) // make as writable
        _, err = os.Create(n + "/a")
        _, err = os.Create(n + "/b")

        os.Chmod(n, p) // alter permissions to see what happens
        err = os.RemoveAll(n)
        if err != nil {
                fmt.Println("cannot delete the file", err)
        }

}

func main() {
        dostuff(0700, "writeallowed")
        dostuff(0400, "readonly")
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>