gpt4 book ai didi

path - 如何删除名称中有空格的文件夹(Golang)

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:09 25 4
gpt4 key购买 nike

以下代码在 windows 中有效:

//suppose I have a fname folder in c:\temp
mydir := "C:\\temp\\dname"
cmd, e := exec.Command("cmd", "/C", " rmdir /S /Q", mydir).Output()

但如果文件夹名称中有空格,则会失败,例如:

mydir := "C:\\temp\\name with space"

Golang os.RemoveAll 可以处理带空格的文件夹名,但在以下情况下会失败:

C:\> mkdir myprj
C:\> cd myprj
C:\myprj> git init
//add some file
C:\myprj> git add .
C:\myprj> git commit -m "Add my files"
//
//This won't work
err := os.RemoveAll("C:/myprj")

关于如何使用 Go 在 Windows 中完全删除文件夹有什么想法吗?

更新1

无论是\\还是/都是一样的错误:

func main() {
if e := os.RemoveAll("c:\\temp\\myprj"); e != nil {
fmt.Println(e)
}
}
//OUTPUT
remove c:\temp\myprj\.git\objects\2b\018ef36e172ae05842a9326fc73f1c8baa3254: Access is denied.

但我可以用这个命令删除文件夹:

C:\> rmdir /S /Q c:\temp\myprj
// or from windows file explore without any problem

最佳答案

我在我的 windows 上做了同样的事情,也得到了同样的错误。但我注意到 myprj 文件夹是只读的(在属性中)所以我将其关闭然后代码工作。

实际上,我在 c:\上创建的每个文件夹在默认情况下都是“只读”的。

这不适用于属性为“只读(仅适用于文件夹中的文件)”的空文件夹。

关于path - 如何删除名称中有空格的文件夹(Golang),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com