Go 删除目录和所有子目录
这就是我所尝试的:Go 删除目录和所有子目录,go,Go,这就是我所尝试的: package main import ( "fmt" "os/exec" ) func main() { fmt.Println("Removing build directory") if err := exec.Command("cmd", "/S /Q", "RD", "c:\\build").Run(); err != nil { fmt.Printf("Error removing build directory
package main
import (
"fmt"
"os/exec"
)
func main() {
fmt.Println("Removing build directory")
if err := exec.Command("cmd", "/S /Q", "RD", "c:\\build").Run(); err != nil {
fmt.Printf("Error removing build directory: %s\n", err)
}
if err := exec.Command("cmd", "/C", "mkdir", "c:\\build").Run(); err != nil {
fmt.Printf("Error making new build directory: %s\n", err)
}
}
我的输出是:
Removing build directory
Error making new build directory: exit status 1
因此,我在删除时没有收到任何错误,但它不会删除任何内容
为什么会这样?试试这个
func main() {
fmt.Println("Removing build directory")
c := exec.Command("cmd", "/C", "rd /S /Q", "C:\\build")
if err := c.Run(); err != nil {
fmt.Println("Error: ", err)
}
if err := exec.Command("cmd", "/C", "mkdir", "c:\\build").Run(); err != nil {
fmt.Printf("Error making new build directory: %s\n", err)
}
}
当您直接调用这些命令时会发生什么情况?如果我在命令提示符中键入rd/s/q c:\\build,它会工作。您是否尝试过使用exe.command(“cmd”、“s”、“q”、“RS”、“c:\\build”)。运行?我不使用Windows,因此无法测试这些内容。请使用而不是运行。这样,您将能够从子进程显示stdout/stderr。希望它能在那里打印出好的错误信息。@alex:好的,谢谢你的建议