研一入坑Go 文件操作
1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "path" 7 "path/filepath" 8 ) 9 10 func main() { 11 fileInfo, err := os.Stat("C:\\Users\\fcl18\\Desktop\\发言.txt") 12 if err != nil { 13 fmt.Println("err", err) 14 return 15 } 16 fmt.Println(fileInfo) 17 18 fmt.Println(fileInfo.Name()) //文件名 19 fmt.Println(fileInfo.Size()) //文件大小 单位 字节 20 fmt.Println(fileInfo.IsDir()) // 判断是否为目录 21 fmt.Println(fileInfo.ModTime()) //修改时间 22 fmt.Println(fileInfo.Mode()) //权限 23 24 filename1 := "C:\\Users\\fcl18\\Desktop\\发言.txt" 25 filename2 := "ab.txt" 26 //判断是否为绝对路径 27 fmt.Println(filepath.IsAbs(filename1)) 28 fmt.Println(filepath.IsAbs(filename2)) 29 //获得路径地址 如果是相对路径就会根据main所在目录拼接成完整的目录 30 fmt.Println(filepath.Abs(filename1)) 31 fmt.Println(filepath.Abs(filename2)) 32 33 //获取父目录 34 fmt.Println("父目录", path.Join(filename1, "..")) 35 36 //创建目录 如果已经存在不会再创建 37 //Mkdir只能创建一层文件夹 38 err1 := os.Mkdir("E:\\网页\\招生+报名\\aa", os.ModePerm) 39 if err1 != nil { 40 fmt.Println("err", err) 41 return 42 } 43 fmt.Println("文件夹创建成功") 44 //MkdirAll可以全部创建 45 err2 := os.MkdirAll("E:\\网页\\招生+报名\\aa\\bb\\cc\\dd", os.ModePerm) 46 if err2 != nil { 47 fmt.Println("err", err2) 48 return 49 } 50 fmt.Println("多层文件夹创建成功") 51 52 //创建文件 53 file1, err3 := os.Create("E:\\网页\\招生+报名\\aa\\a.txt") 54 if err3 != nil { 55 fmt.Println("err", err3) 56 return 57 } 58 fmt.Println(file1.Name()) 59 //相对目录 60 file2, err4 := os.Create(filename2) 61 if err4 != nil { 62 fmt.Println("err", err4) 63 return 64 } 65 fmt.Println(file2.Name()) 66 67 // file操作 68 file3, err5 := os.Open(filename1) //只读 69 if err5 != nil { 70 fmt.Println("err", err5) 71 return 72 } 73 fmt.Println(file3) 74 75 /* 76 openFile 77 第一个参数 文件目录地址 78 79 第二个参数:文件打开方式 80 O_RDONLY int = syscall.O_RDONLY // open the file read-only. 81 O_WRONLY int = syscall.O_WRONLY // open the file write-only. 82 O_RDWR int = syscall.O_RDWR // open the file read-write. 83 // The remaining values may be or'ed in to control behavior. 84 O_APPEND int = syscall.O_APPEND // append data to the file when writing. 85 O_CREATE int = syscall.O_CREAT // create a new file if none exists. 86 O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist. 87 O_SYNC int = syscall.O_SYNC // open for synchronous I/O. 88 O_TRUNC int = syscall.O_TRUNC // truncate regular writable file when opened. 89 90 第三个参数:文件权限 文件不存在时创建 需指定权限 91 */ 92 file4, err6 := os.OpenFile(filename1, os.O_RDONLY|os.O_WRONLY, os.ModePerm) 93 if err6 != nil { 94 fmt.Println("err", err6) 95 return 96 } 97 fmt.Println(file4.Name()) 98 99 //关闭文件 100 file4.Close() 101 102 //删除文件或文件夹 103 //Remove只能删除单层为空的目录 104 err7 := os.Remove("E:\\网页\\招生+报名\\aa\\a.txt") 105 if err7 != nil { 106 fmt.Println("err", err7) 107 return 108 } 109 fmt.Println("删除成功") 110 //RemoveAll不管目录是否为空都会删除 111 err8 := os.RemoveAll("E:\\网页\\招生+报名\\aa") 112 if err8 != nil { 113 fmt.Println("err", err8) 114 return 115 } 116 fmt.Println("删除成功") 117 118 }
分享标题:研一入坑Go 文件操作
网址分享:http://scjbc.cn/article/dsoicco.html