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/")
