Golang 删除指定目录及其内容:完整指南与示例代码

本指南将指导您如何使用 Golang 删除指定目录及其所有文件和子目录。我们将提供完整示例代码,并解释每个步骤的逻辑。

步骤:

  1. 判断目录是否存在: 使用 os.Stat() 函数检查目标目录是否存在。如果不存在,则直接返回。
  2. 递归遍历目录: 使用 os.ReadDir() 函数读取目录中的所有文件和子目录。对于每个子目录,递归调用删除函数。
  3. 删除文件: 使用 os.Remove() 函数删除每个文件。
  4. 删除目录: 最后,删除目标目录本身。

示例代码:

package main

import (
	"fmt"
	"os"
)

func main() {
	dir := "/path/to/directory"
	if _, err := os.Stat(dir); os.IsNotExist(err) {
		fmt.Println("Directory does not exist")
		return
	}
	deleteFiles(dir)
}

func deleteFiles(dir string) error {
	files, err := os.ReadDir(dir)
	if err != nil {
		return err
	}
	for _, file := range files {
		if file.IsDir() {
			// 递归删除子目录
			if err := deleteFiles(dir + "/" + file.Name()); err != nil {
				return err
			}
		} else {
			// 删除文件
			if err := os.Remove(dir + "/" + file.Name()); err != nil {
				return err
			}
		}
	}
	// 删除目录
	if err := os.Remove(dir); err != nil {
		return err
	}
	return nil
}

注意:

  • 该代码会直接删除指定目录下的所有文件和子目录,请谨慎使用。
  • 建议您在实际使用之前进行测试,以确保代码正常运行。

相关资源:

Golang 删除指定目录及其内容:完整指南与示例代码

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

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