golang判断文件或文件夹是否存在

我是不会赢的 · · 1425 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go判断文件或文件夹是否存在

  • 文件/文件夹是否存在

    /**
    * function 判断文件/文件夹是否存在
    * param   path: 文件/文件夹的路径
    * return    bool:true存在,false不存在
    *             error:存在返回nil,不存在返回错误
    */
    func FileAndDirIsExistCommonService(path string) (bool, error) {
      fileInfo, erByStat := os.Stat(path)
      if erByStat != nil {
          logs.Error("os stat %s error......%s", path, erByStat.Error())
          //该判断主要是部分文件权限问题导致os.Stat()出错,具体看业务启用
          //使用os.IsNotExist()判断为true,说明文件或文件夹不存在
          //if os.IsNotExist(erByStat) {
          //  logs.Error("%s is not exist", erByStat.Error())
          //  return false, erByStat
          //}else{
          //文件/文件夹存在
          //return true, nil
          // }
          return false, erByStat
      }
        //打印名称
      fmt.Printf("File/Dir name=%s", fileInfo.Name())
      return true, nil
    }
    
    

    有些代码会使用==os.Open==来完成上述工作;

    不过最好不要这么做,因为虽然两者完成的功能没有区别

    但在调用开销方面,stat小于open;

    而且对于判断文件是否存在;

    检查它的元数据要比直接尝试打开它更加合理


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:我是不会赢的

查看原文:golang判断文件或文件夹是否存在

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1425 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传