go语言打开一个文件时的路径问题

本文详细介绍了在Go语言中如何处理文件的绝对路径和相对路径,包括使用os.OpenFile函数创建、追加和读写文件。强调了目录必须存在的前提,以及在不同路径情况下的操作示例,同时展示了目录分隔符的使用规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提是该文件所处的目录必须存在

1.绝对路径

如果写绝对路径是一定没有问题的
绝对路径从盘符开始,直到你想打开的文件所在的路径
目录分隔符 有两种 \\ /

对于 \\第一个字符\是转义字符

//E:/GoProgect/src/loggerTest 这个目录 必须存在
// os.O_CREATE :文件不存在的时候创建文件夹 os.O_APPEND 对文件末尾添加内容时使用 os.O_RDWR对文件可读可写

_, err1 := os.OpenFile("E:\\GoProgect\\src\\loggerTest\\ZXPtest.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
	if err1 != nil {
		fmt.Println("err1", err1)
	}
	//E:/GoProgect/src/loggerTest/zxp 这个目录 必须存在
_, err3 := os.OpenFile("E:/GoProgect/src/loggerTest/zxp/test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
	if err3 != nil {
		fmt.Println("err3", err3)
	}
	//两种目录分隔符可以交叉使用
_, err2 := os.OpenFile("E:\\GoProgect\\src\\loggerTest/Zxxp\\test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
	if err2 != nil {
		fmt.Println("err2", err2)
	}

2.相对路径

相对于代码文件所在位置
我的打开文件操作代码是在main.go文件中,main.go的相对路径就是项目目录loggerTest
相对路径可以省略./
在这里插入图片描述

//可以直接创建  
_, err4 := os.OpenFile("test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744) //正确 当前目录
	if err4 != nil {
		fmt.Println("err4", err4)
	}
	//不能创建 当前文件夹loggerTest下没有notExist文件夹
	_, err5 := os.OpenFile("notExist/test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
	if err5 != nil {
		fmt.Println("err5", err5)
	}
	//能创建 当前文件夹loggerTest下有notExist文件夹
	_, err6 := os.OpenFile("./Exist/test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744) //正确 当前目录
	if err6 != nil {
		fmt.Println("err6", err6)
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值