Golang 递归删除目录:示例代码和解释
以下代码使用 filepath.Walk 函数遍历目录,并使用 os.Remove 删除所有文件。
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
dirPath := "/path/to/directory"
err := removeAllFilesInDir(dirPath)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("All files in directory", dirPath, "deleted successfully")
}
}
func removeAllFilesInDir(dirPath string) error {
err := filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
err = os.Remove(path)
if err != nil {
return err
}
}
return nil
})
if err != nil {
return err
}
return nil
}
该代码使用 filepath.Walk 函数遍历目录中的所有文件和子目录。如果遍历到的是文件,则使用 os.Remove 函数删除该文件。如果遍历到的是子目录,则不执行任何操作。最后返回删除操作的错误信息或空值(如果没有错误)。
原文地址: https://www.cveoy.top/t/topic/kWvv 著作权归作者所有。请勿转载和采集!