登录
首页 >  Golang >  Go教程

Golang目录操作实战指南

时间:2025-09-24 23:30:33 222浏览 收藏

今天golang学习网给大家带来了《Golang文件目录操作实战教程》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

Go语言通过os包提供文件与目录操作,1. 使用os.Mkdir和os.MkdirAll创建目录;2. os.Remove和os.RemoveAll删除文件或目录;3. os.Rename重命名或移动文件;4. os.Stat配合os.IsNotExist检查路径是否存在;5. os.ReadDir遍历目录内容,需始终处理error以保证程序健壮性。

Golang os文件与目录操作示例

Go语言通过os包提供了丰富的文件与目录操作功能,包括创建、删除、读取、重命名等。以下是一些常见操作的实用示例,帮助快速掌握基本用法。

1. 创建目录

os.Mkdir 用于创建单个目录,os.MkdirAll 可递归创建多级目录。

  • os.Mkdir("dir", 0755):创建权限为0755的目录,父目录必须存在。
  • os.MkdirAll("dir/subdir", 0755):自动创建所有缺失的上级目录。

示例:

err := os.MkdirAll("data/logs", 0755)
if err != nil {
    log.Fatal(err)
}

2. 删除目录或文件

os.Remove 可删除文件或空目录,os.RemoveAll 可递归删除整个目录树。

  • os.Remove("file.txt"):删除指定文件。
  • os.RemoveAll("dir"):强制删除目录及其内容,类似rm -rf。

示例:

err := os.RemoveAll("temp")
if err != nil {
    log.Fatal(err)
}

3. 重命名或移动文件

使用 os.Rename 实现文件或目录的重命名或移动。

  • 源路径和目标路径需在同一设备上。
  • 目标文件若已存在,行为依赖操作系统,通常会覆盖失败。

示例:

err := os.Rename("oldname.txt", "newname.txt")
if err != nil {
    log.Fatal(err)
}

4. 检查文件或目录是否存在

通过 os.Statos.IsNotExist 判断路径是否存在。

  • os.Stat(path) 获取文件信息,若路径不存在则返回错误。
  • 使用 os.IsNotExist(err) 判断是否为“不存在”错误。

示例:

_, err := os.Stat("config.json")
if os.IsNotExist(err) {
    fmt.Println("配置文件不存在")
} else if err != nil {
    log.Fatal(err)
}

5. 遍历目录

使用 os.ReadDir(推荐)或 os.File.Readdir 读取目录内容。

  • os.ReadDir 返回 []fs.DirEntry,性能更好。
  • 适合遍历目录列出文件名或判断类型。

示例:

entries, err := os.ReadDir(".")
if err != nil {
    log.Fatal(err)
}
for _, entry := range entries {
    if entry.IsDir() {
        fmt.Printf("[DIR]  %s\n", entry.Name())
    } else {
        fmt.Printf("[FILE] %s\n", entry.Name())
    }
}
基本上就这些常用操作。注意每次调用后处理返回的error,确保程序健壮性。Go的标准库设计简洁,配合defer和error处理,能写出清晰可靠的文件操作代码。

本篇关于《Golang目录操作实战指南》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>