关于我

我的博客|文章首发

顾名思义,go-homedir用来获取用户的主目录。实际上,通过使用标准库os/user我们也可以得到内容,使用以下方式

标准库使用

package main

import (
"fmt"
"log"
"os/user"
) func main() {
u, err := user.Current()
if err != nil {
log.Fatal(err)
} fmt.Println("Home dir:", u.HomeDir)
}

控制台输出

Home dir: C:\Users\Administrator

为什么要用home-dir

内置os/user软件包在Darwin系统上需要cgo。这意味着任何使用该软件包的Go代码都无法交叉编译。但是99%的使用时间os/user只是用于检索主目录,我们可以在没有cgo的情况下为当前用户执行此操作。该库可以做到这一点,从而可以进行交叉编译。

home-dir 使用

go-homedir有两个功能:

  • Dir:获取用户主目录;

  • Expand:将路径中的第一个~扩展成用户主目录。

下面我们通过一个案例进行说明

func homedirUse() {
dir, err := homedir.Dir()
if err != nil {
log.Fatal(err)
} fmt.Println("Home dir:", dir) dir = "~/parentRoot/childRoot"
expandedDir, err := homedir.Expand(dir)
if err != nil {
log.Fatal(err)
} fmt.Printf("Expand of %s is: %s\n", dir, expandedDir)
}

控制台输出

Home dir: C:\Users\Administrator

Expand of ~/parentRoot/childRoot is: C:\Users\Administrator\parentRoot\childRoot

Home dir 是当前用户主目录,在linux下对应/home/目录

Expandof将~转换成用户主目录地址,后台跟自己的地址进行拼接

参考

https://github.com/mitchellh/go-homedir

https://zhuanlan.zhihu.com/p/102785627

END

欢迎关注公众号 程序员工具集 致力于分享优秀的开源项目、学习资源 、常用工具

回复关键词“关注礼包”,送你一份最全的程序员技能图谱。

最新文章

  1. GBDT原理实例演示 2
  2. CSS样式表 选择器
  3. MySql 首记
  4. Android图形基础
  5. SQL where 1=1的作用
  6. android--多View切换viewpager
  7. 查看MySQL还原出来的binlog日志中内容方法
  8. PYTHON调用JENKINS的API来进行CI
  9. jquery判断元素是否隐藏的多种方法
  10. 使用Entity Framework 4进行代码优先开发
  11. About Spring
  12. 如何在微软Hyper-V下发挥SQL Server最大功效
  13. ASP.NET Core MVC 模型绑定用法及原理
  14. Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
  15. Geoserver+Openlayers拉框查询
  16. 一款Android图文识别与扫描软件
  17. 评估指标【交叉验证&ROC曲线】
  18. LeetCode--11_Container_With_Most_Water
  19. 11.Git分支-远程跟踪分支的概念、多个远程仓库的使用
  20. vue开发项目详细教程(第一篇 搭建环境篇)

热门文章

  1. ORM All In One
  2. html tag filter in js
  3. Flutte 什么是Widget,RenderObjects和Elements
  4. APC推出鞋底缓震科技 两款中高端跑鞋将陆续上市
  5. django学习-10.django连接mysql数据库和创建数据表
  6. Github Packages和Github Actions实践之CI/CD
  7. 【commons-pool2源码】写前思考
  8. idea中Maven-build lifecycle中下面标签详解
  9. 永远不要眼高手低,Vue完整实现一套简单的增删改查CURD操作
  10. Oracle kill locked sessions