前提是该文件所处的目录必须存在
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)
}