-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
What version of Go are you using (go version)?
go version go1.10.2 windows/amd64
Does this issue reproduce with the latest release?
Untested, but I don't see any changes that would have fixed it
What operating system and processor architecture are you using (go env)?
windows/amd64
What did you do?
package main
import (
"os"
)
func main() {
err := os.RemoveAll("./folder_with_icon")
if err != nil {
panic(err)
}
}folder_with_icon is an empty folder that has had a custom icon added via Windows Explorer's interface (Properties => Customize => Change Icon...).
What did you expect to see?
folder_with_icon should be deleted.
What did you see instead?
panic: remove ./folder_with_icon: Access is denied.
goroutine 1 [running]:
main.main()
C:/[path]/test.go:10 +0x6a
Notes
This is similar to #9606.
Setting a custom folder icon on Windows sets the read-only attribute on the folder and creates a desktop.ini file with the system attribute inside the folder. Despite being read-only, the folder can be deleted both through File Explorer and by rd /s folder_with_icon by its owner, even if the owner is not an administrator account. The above Go program will not delete the folder, even if it is run with administrator privileges.
os.RemoveAll() removes the desktop.ini but does not delete the folder.