可以使用os包中的RemoveAll函数来删除目录下的所有文件和子目录。

示例代码:

package main

import (
	"fmt"
	"os"
)

func main() {
	dir := "/path/to/directory"

	err := removeAllFiles(dir)
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("All files removed successfully.")
	}
}

func removeAllFiles(dir string) error {
	// 打开目录
	d, err := os.Open(dir)
	if err != nil {
		return err
	}
	defer d.Close()

	// 获取目录下所有文件和子目录
	files, err := d.Readdir(-1)
	if err != nil {
		return err
	}

	// 遍历文件和子目录
	for _, file := range files {
		// 构建文件路径
		path := dir + "/" + file.Name()

		if file.IsDir() {
			// 如果是子目录,递归删除
			err = removeAllFiles(path)
			if err != nil {
				return err
			}
		} else {
			// 如果是文件,删除
			err = os.Remove(path)
			if err != nil {
				return err
			}
		}
	}

	// 删除目录
	err = os.Remove(dir)
	if err != nil {
		return err
	}

	return nil
}

在上面的示例代码中,removeAllFiles函数接收一个目录路径作为参数,首先打开目录并获取其下所有文件和子目录,然后遍历这些文件和子目录,如果是子目录就递归调用removeAllFiles函数来删除子目录下的所有文件和子目录,如果是文件就直接删除。最后删除目录本身。注意,删除目录时必须先删除目录下的所有文件和子目录

golang删除目录下所有文件

原文地址: https://www.cveoy.top/t/topic/dbdZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录