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

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 实现文件或目录的重命名或移动。
影缘版商城
率先引入语言包机制,可在1小时内制作出任何语言版本,程序所有应用文字皆引自LANG目录下的语言包文件,独特的套图更换功能,三级物品分类,购物车帖心设计,在国内率先将购物车与商品显示页面完美结合,完善的商品管理,具备上架、下架缺货及特价商品设置功能多多,商城名、消费税、最低购物金额、货币符号、商城货币名称全部后台设定,多级用户考虑,管理员只需要设置用户级别、不同级别用户之返点系统自动判断用户应得返还
0 查看详情
源路径和目标路径需在同一设备上。 目标文件若已存在,行为依赖操作系统,通常会覆盖失败。
示例:
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/1151522.html
微信扫一扫
支付宝扫一扫