go每日一库 [home-dir] 获取用户主目录
2024-10-19 17:37:22
关于我
顾名思义,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
欢迎关注公众号 程序员工具集 致力于分享优秀的开源项目、学习资源 、常用工具
回复关键词“关注礼包”,送你一份最全的程序员技能图谱。
最新文章
- GBDT原理实例演示 2
- CSS样式表 选择器
- MySql 首记
- Android图形基础
- SQL where 1=1的作用
- android--多View切换viewpager
- 查看MySQL还原出来的binlog日志中内容方法
- PYTHON调用JENKINS的API来进行CI
- jquery判断元素是否隐藏的多种方法
- 使用Entity Framework 4进行代码优先开发
- About Spring
- 如何在微软Hyper-V下发挥SQL Server最大功效
- ASP.NET Core MVC 模型绑定用法及原理
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
- Geoserver+Openlayers拉框查询
- 一款Android图文识别与扫描软件
- 评估指标【交叉验证&;ROC曲线】
- LeetCode--11_Container_With_Most_Water
- 11.Git分支-远程跟踪分支的概念、多个远程仓库的使用
- vue开发项目详细教程(第一篇 搭建环境篇)
热门文章
- ORM All In One
- html tag filter in js
- Flutte 什么是Widget,RenderObjects和Elements
- APC推出鞋底缓震科技 两款中高端跑鞋将陆续上市
- django学习-10.django连接mysql数据库和创建数据表
- Github Packages和Github Actions实践之CI/CD
- 【commons-pool2源码】写前思考
- idea中Maven-build lifecycle中下面标签详解
- 永远不要眼高手低,Vue完整实现一套简单的增删改查CURD操作
- Oracle kill locked sessions