RemoveAll () не должен работать из-за проблем с правами доступа к файлам - PullRequest
0 голосов
/ 04 октября 2018
err := os.RemoveAll(filePath)
    if err != nil {
        fmt.Println("cannot delete the file", err)
        return nil, err
    }

В настоящее время приведенный выше код удаляет файлы с правами доступа только для чтения (пробовал для 0444).

Существуют ли какие-либо определенные права доступа к файлам, которые не позволяют мне удалять файлы или папку?

1 Ответ

0 голосов
/ 04 октября 2018

Главное, чтобы у вас были права на запись в каталог, содержащий файлы, как показано в этом примере

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")
}
...