GoLang追加打开文件、覆盖打开文件、文件大小、创建目录、删除文件
作者:互联网
1、打开文件 - os.OpenFile 以重写方式打开fileName指定的文件,若不存在则创建该文件: logFile, err = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755) 以追加方式打开文件fileName指定的文件,若不存在则创建该文件: logFile, err = os.OpenFile(logFileName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) 注意: filleName是一个指定了文件(包含其所在路径)的字符串,如:“/Users/zhangsan/log.txt”; 参数os.O_CREATE是fileName中指定的文件不存在时创建文件,不包括创建目录,而如果路径不存在则会报错。比如以1举的例子来说:如果log.txt文件不存在则会创建,但如果"/Users/zhangsan/"目录不存在则会报错:no such file or directory。 所以:如果要想实现目录不存在时自动创建目录,还得使用创建目录的Api来实现。 2、创建目录 - os.MkdirAll //在系统本地实施创建defaultLogFilePath(表示路径值的字符串) - 注意如果该路径已经存在了则不会重复创建. err = os.MkdirAll(defaultLogFilePath, 0750) if err != nil && !os.IsExist(err) { defaultLogFilePath = "" log.Print(err) } 3、判断文件是否存在以及获取文件的大小 - os.Stat if file, err := os.Stat("/Users/zhangsan/log.txt"); err == nil { //如果不报错说明fileName指向的文件在当前系统已经存在 //若已经存在则每次都判断当前日志文件的大小是否已超过100M,若是则以覆盖方式打开该文件,则再次写入日志时将日志文件现有内容。 if file.Size() > 1000000 { //如果文件大于1M file.size的单位为bytes,所有1000 000bytes = 1M return "文件存在且大于1M" } } //如果报错则说明fileName指向的文件在当前系统不存在 return "文件不存在!" 4、删除文件或是级联删除目录 os.remove err := os.Remove("/Users/zhangsan/log.txt") err := os.RemoveAll("/Users/zhangsan/")
标签:文件,存在,err,文件大小,创建,fileName,打开,os 来源: https://www.cnblogs.com/hedaihua/p/16098933.html