os包提供文件与目录操作接口。1. os.Create创建文件并写入内容;2. os.Open配合file.Read读取文件;3. os.Mkdir和MkdirAll创建单个或多个目录;4. os.Remove删除文件或空目录,os.RemoveAll递归删除目录树;5. os.Rename重命名或移动文件/目录;6. os.Stat获取文件信息如大小、权限、类型等;7. 通过os.Stat和os.IsNotExist判断文件是否存在。结合defer和错误处理可确保操作安全可靠。

在Golang中,os 包提供了对操作系统功能的接口,包括文件和目录的操作。你可以用它来创建、读取、写入、重命名和删除文件与目录。下面介绍常用操作及其使用方法。
使用 os.Create 可以创建一个新文件。如果文件已存在,会清空原内容。
file, err := os.Create("example.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
_, err = file.WriteString("Hello, Golang!")
if err != nil {
log.Fatal(err)
}
这段代码创建了一个名为 example.txt 的文件,并写入一段文本。
使用 os.Open 打开一个已有文件进行读取。
file, err := os.Open("example.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
data := make([]byte, 100)
n, err := file.Read(data)
if err != nil &a
mp;& err != io.EOF {
log.Fatal(err)
}
fmt.Printf("读取了 %d 字节: %s\n", n, data[:n])
你也可以用 io.ReadAll 一次性读取全部内容。
使用 os.Mkdir 创建单个目录,os.MkdirAll 可创建多级目录(包含父目录)。
名品购物网店系统
适合品牌专卖店专用,从前台的美工设计就开始强调视觉形象,有助于提升商品的档次,打造网店品牌!后台及程序核心比较简洁,着重在线购物,去掉了繁琐的代码及垃圾程式,在结构上更适合一些中高档的时尚品牌商品展示. 率先引入语言包机制,可在1小时内制作出任何语言版本,程序所有应用文字皆引自LANG目录下的语言包文件,独特的套图更换功能,三级物品分类,购物车帖心设计,在国内率先将购物车与商品显示页面完美结合,完
0
查看详情
err := os.Mkdir("mydir", 0755) // 权限 0755
if err != nil {
log.Fatal(err)
}
// 创建多级目录
err = os.MkdirAll("path/to/deep/dir", 0755)
if err != nil {
log.Fatal(err)
}
os.Remove 可用于删除文件或空目录。os.RemoveAll 则可以递归删除整个目录树。
// 删除文件
err := os.Remove("example.txt")
if err != nil {
log.Fatal(err)
}
// 删除目录及其所有内容
err = os.RemoveAll("mydir")
if err != nil {
log.Fatal(err)
}
使用 os.Rename 实现文件或目录的重命名或移动。
err := os.Rename("oldname.txt", "newname.txt")
if err != nil {
log.Fatal(err)
}
只要源路径和目标路径在同一磁盘分区,就可以成功执行。
使用 os.Stat 获取文件或目录的详细信息,如大小、权限、是否为目录等。
info, err := os.Stat("example.txt")
if err != nil {
log.Fatal(err)
}
fmt.Printf("文件名: %s\n", info.Name())
fmt.Printf("大小: %d\n", info.Size())
fmt.Printf("是否是目录: %v\n", info.IsDir())
fmt.Printf("权限: %s\n", info.Mode())
Go 没有直接的“Exists”函数,但可以通过 os.Stat 和错误判断实现。
if _, err := os.Stat("example.txt"); os.IsNotExist(err) {
fmt.Println("文件不存在")
} else {
fmt.Println("文件存在")
}
基本上就这些。os 包足够应对大多数基础文件系统操作,结合 defer 和错误处理,能写出安全可靠的代码。以上就是如何在Golang中使用os操作文件与目录的详细内容,更多请关注其它相关文章!
相关文章:
TypeScript/J*aScript:高效查找数组中首个唯一ID对象
使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
12306选座怎么选到商务座_12306商务座选择与配置说明
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南
C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责
poki网页游戏推荐_poki免费游戏平台入口
虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作
Selenium Python中处理点击后新窗口加载冻结问题的策略与实践
J*aScript设计模式实践_j*ascript代码优化
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
mysql备份恢复性能优化_mysql备份恢复性能优化方法
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
从OpenAI API响应中高效提取生成文本
Golang如何测试channel通信行为_Golang channel通信测试与分析方法
天眼查企业查询官网入口 天眼查官方网页版查询
PHP URL参数传递与500错误调试指南
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
电脑IP地址怎么查 查看本机IP地址的几种方法
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation
在python-socketio事件处理器中安全访问Flask应用上下文
Sublime Text怎么显示空格和制表符_Sublime显示不可见字符设置
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%
4399网页游戏电脑版全新入口 4399电脑端在线玩指南
Python Socket多播通信中指定源IP地址的实践指南
Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】
poki免费入口快捷访问 poki人气小游戏直接玩站点
excel怎么提取文本中数字 excel函数提取技巧
QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
马斯克:Optimus 人形机器人复数形式为 Optimi
c++ dfs和bfs代码 c++深度广度优先搜索算法
Tailwind CSS line-clamp 布局问题解析与修复指南
Python多版本共存与虚拟环境管理深度指南
Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】
特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法
BetterDiscord插件中安全更新用户简介的实践指南
解决Django多数据库/多Schema环境下外键迁移问题
Angular中父组件异步更新子组件复选框状态的实践指南
Win11截图该按哪些键 Win11截屏完整流程解析【教程】
PHP实现即时文章发布与单次数据库写入:自提交模式教程
自定义Bag-of-Words实现:处理带负号的词汇权重
TikTok网页版直接登录 TikTok网页端官方平台入口