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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM