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:好的,谢谢你的建议