ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GoLang追加打开文件、覆盖打开文件、文件大小、创建目录、删除文件

2022-04-04 13:31:57  阅读:262  来源: 互联网

标签:文件 存在 err 文件大小 创建 fileName 打开 os


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有