Golang 删除目录下所有文件:使用 os 包实现

本文将介绍如何使用 Golang 的 os 包来判断指定目录下是否存在文件,并删除目录下所有文件。

代码示例

package main

import (
	"fmt"
	"os"
)

func main() {
	dirPath := "/path/to/dir"
	fileInfo, err := os.Stat(dirPath)
	if err != nil {
		if os.IsNotExist(err) {
			fmt.Println("Directory does not exist.")
		} else {
			fmt.Println("Error:", err)
		}
		return
	}
	if !fileInfo.IsDir() {
		fmt.Println("Not a directory.")
		return
	}
	files, err := os.ReadDir(dirPath)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	for _, file := range files {
		if !file.IsDir() {
			err := os.Remove(dirPath + "/" + file.Name())
			if err != nil {
				fmt.Println("Error:", err)
				return
			}
		}
	}
}

代码说明

  1. 判断目录是否存在: 使用 os.Stat 函数来判断指定目录是否存在。如果目录不存在,则输出错误信息并退出程序。

  2. 判断是否为目录: 使用 fileInfo.IsDir() 函数判断 os.Stat 返回的 FileInfo 是否代表一个目录。如果该路径不是目录,则输出错误信息并退出程序。

  3. 读取目录内容: 使用 os.ReadDir 函数读取指定目录下的所有文件和子目录。

  4. 删除文件: 遍历所有文件,判断是否为文件(非子目录),并使用 os.Remove 函数删除文件。

注意事项

  • 上述代码只删除指定目录下的文件,不会删除子目录中的文件。
  • 如果需要删除子目录中的文件,可以使用递归函数来实现。
  • 在实际应用中,需要根据具体的场景进行修改。

总结

本文介绍了如何使用 Golang 的 os 包来删除指定目录下的所有文件。通过代码示例和详细说明,你可以轻松地实现此功能,并根据需要进行扩展。

Golang 删除目录下所有文件:使用 os 包实现

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

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