1,创建文件
/*createFile 创建文件 | 参数说明:dir 路径,fileName 文件名 */ func createFile(dir, fileName string) (*os.File, error) { var err error //目录不存在则创建 if _, err = os.Stat(dir); err != nil { if err = os.MkdirAll(dir, 0777); err != nil { //这里如果是0711权限 可能会导致其它线程,读取文件夹内内容出错 return nil, err } } //创建文件 var newFile *os.File if newFile, err = os.Create(dir + "/" + fileName); err != nil { return nil, err } //创建成功,返回文件指针 return newFile, nil }
2,写入文件
/*writeFile 写入文件 | 参数说明:path 文件路径 ,content 写入内容*/ func writeFile(path string, content string) error { //打开文件 | 如果文件不存在,这里会自动创建文件 f, err := os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666) if err != nil { return err } io.WriteString(f, content) //写入文件 f.Close() //关闭文件 return nil }
3,读取文件
/*readFile 读取文件 | 参数说明:path 文件路径*/ func readFile(path string) []string { //打开文件 f, _ := os.Open(path) br := bufio.NewReader(f) var lines []string for { a, _, c := br.ReadLine() if c == io.EOF { break } lines = append(lines, string(a)) //string(a)为一行数据 } //关闭文件 f.Close() return lines }
4,删除文件
os.Remove(path)
5,判断文件是否存在
//判断文件是否存在 存在返回 true ,不存在返回 false func isExist(path string) bool { _, err := os.Stat(path) return err == nil || os.IsExist(err) }
6,读取文件大小
/*fileSize 读取指定路径的文件尺寸 返回文件大小 | 参数说明:path 文件路径 */ func fileSize(path string) int64 { f, e := os.Stat(path) if e != nil { fmt.Println(e.Error()) return 0 } return f.Size() }
7,文件重命名
os.Rename(path, newpath)
8,文件最后修改时间
/*fileModifyTime 文件最后修改时间 */ func fileModifyTime(path string) time.Time { var t time.Time fileInfo, err := os.Stat(path) if err == nil || os.IsExist(err) { t = fileInfo.ModTime() } return t }