Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Golang os文件与目录操作示例_创想鸟

Golang os文件与目录操作示例

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 可递归删除整个目录树。

立即学习“go语言免费学习笔记(深入)”;

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.Stat 和 os.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]  %sn", entry.Name())    } else {        fmt.Printf("[FILE] %sn", entry.Name())    }}

基本上就这些常用操作。注意每次调用后处理返回的error,确保程序健壮性。Go的标准库设计简洁,配合defer和error处理,能写出清晰可靠的文件操作代码。

以上就是Golang os文件与目录操作示例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1410816.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Go语言自定义错误处理与函数返回实践指南
上一篇 2025年12月16日 03:40:30
Go语言切片操作详解:合并、插入与追加元素
下一篇 2025年12月16日 03:40:44

相关推荐

发表回复

登录后才能评论
关注微信