其他分享
首页 > 其他分享> > GoLang追加打开文件、覆盖打开文件、文件大小、创建目录、删除文件

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