研一入坑Go文件操作

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

    经验总结扩展阅读