Golang-os包文件常用操作整理
度娘到处都是,整理下吧。
package main import ( "fmt" "os" "path" "path/filepath" ) func main(){ /* 文件操作: 1.路径: 相对路径: relative ab.txt 相对于当前工程 . 当前目录 ..上一层 绝对路径: absolute /www/abb/a.txt */ //路径 fileName := "D:\\work\\go\\aa.txt" fileName2 := "ab.txt" fmt.Println(filepath.IsAbs(fileName)) //是否绝对路径 fmt.Println(filepath.IsAbs(fileName2)) //是否绝对路径 fmt.Println(filepath.Abs(fileName)) //获取绝对路径 fmt.Println(filepath.Abs(fileName2)) fmt.Println("获取父目录:",path.Join(fileName,"..")) //创建文件夹 //err := os.Mkdir("D:\\work\\go\\hhhh",os.ModePerm) //if err != nil { // fmt.Println("err:",err) // return //} fmt.Println("文件夹创建成功") //创建多层文件夹 err2 := os.MkdirAll("D:\\work\\go\\hhhh\\aa\\ss",os.ModePerm) if err2 != nil { fmt.Println("err2:",err2) return } fmt.Println("多层文件创建成功") //创建文件 //Create采用模式0666(任何人都可读写,不可执行) file,err3 := os.Create("D:\\work\\go\\ab.txt") if err3 != nil { fmt.Println("err:", err3) return } fmt.Println(file) //相对当前路径创建文件 file2,err4 := os.Create(fileName2) if err4 != nil { fmt.Println(err4) return } fmt.Println(file2) /** 文件的操作 os.OpenFile() 第一个参数:文件名称路径 第二个参数: 文件的打开方式 O_RDONLY int = syscall.O_RDONLY // 只读模式打开. O_WRONLY int = syscall.O_WRONLY // 只写打开文件. O_RDWR int = syscall.O_RDWR // 读写模式打开文件. // 下面的控制行为. O_APPEND int = syscall.O_APPEND // 在写文件时追加数据. O_CREATE int = syscall.O_CREAT // 如果不存在,创建一个新文件. O_EXCL int = syscall.O_EXCL // 使用O_CREATE时,文件必须不存在. O_SYNC int = syscall.O_SYNC // 打开同步I/O. O_TRUNC int = syscall.O_TRUNC // 打开时截断常规可写文件. 第三个参数:文件的权限: 文件不存在创建文件,需要指定权限 */ file4,err5 := os.OpenFile(fileName,os.O_RDONLY|os.O_WRONLY,os.ModePerm) if err5 != nil { fmt.Println("err5:",err5) } fmt.Println(file4) //关闭文件 file4.Close() //删除文件或文件夹(目录必须是空) //Remove //RemoveAll err6 := os.Remove(fileName) if err6 != nil{ fmt.Println("err6",err6) return } fmt.Println("删除文件夹成功。。") }
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
- 本文网址:https://www.liaotaoo.cn/367.html
- 上篇文章:Golang简单写文件操作的四种方法
- 下篇文章:Golang时间包time常用方法整理