7.1.获取操作系统用户信息

(1)os包及子包功能

  • os/exec包,负责执行外部命令
  • os/singal对输入信息的访问
  • os/user通过名次或ID 查询用户账号

(2)在os/user中提供了User结构体,表示操作系统用户

  • Uid用户id
  • Gid所属组id
  • Username用户名
  • Name所属组名
  • HomeDir用户对应文件夹路劲

(3)在os/user中的Group表示用户所属组

  • Gid组的id
  • Name组的名称
//Learn_Go/main.go
package main import (
"fmt"
"os/user"
) func main() {
u,error := user.Current() //获取当前用户
if error != nil{
fmt.Println(error)
return
}
fmt.Println(u.Uid)
fmt.Println(u.Name)
fmt.Println(u.Gid)
fmt.Println(u.HomeDir)
fmt.Println(u.Username)
}

7.2.系统文件和目录

(1)Go语言标准库中提供了两种创建文件夹的方式

MkDir:要求文件夹不存在且父目录必须存在,才能创建

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.Mkdir("D:/godir", os.ModeDir)
if err != nil{
fmt.Println("文件夹创建失败", err)
return
}
fmt.Println("文件夹创建成功")
}

 MkDirAll:如果文件夹已经存在,不报错,保留原文件,如果父目录不存在帮助创建

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.MkdirAll("D:/godir/a/b", os.ModeDir)
if err != nil{
fmt.Println("文件夹创建失败", err)
return
}
fmt.Println("文件夹创建成功")
}

 (2)创建空文件

创建文件是要求文件目录必须已经存在

如果文件已经存在,则会创建一个空文件覆盖之前的文件

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
f , err := os.Create("D:/godir/test.txt")
if err != nil{
fmt.Println("文件夹创建失败", err)
return
}
fmt.Println("文件夹创建成功", f)
}

 (3)重命名文件或文件夹

 第一个参数:原文件名称,要求此路径是必须存在的

第二个参数:新文件夹名称

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.Rename("D:/godir","D:/godir11")
if err != nil{
fmt.Println("重命名失败", err)
return
}
fmt.Println("重命名成功")
}

 重命名文件

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.Rename("D:/godir11/test.txt","D:/godir11/test11.txt")
if err != nil{
fmt.Println("重命名失败", err)
return
}
fmt.Println("重命名成功")
}

 (4)获取文件夹信息

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
f,err := os.Open("D:/godir11/test11.txt")
if err != nil{
fmt.Println("文件获取失败", err)
return
}
fileInfo,err := f.Stat()
if err != nil{
fmt.Println("文件信息获取失败",err)
return
}
fmt.Println(fileInfo.Size()) //文件大小
fmt.Println(fileInfo.ModTime()) //文件最后修改时间
fmt.Println(fileInfo.Mode()) //文件模式 -rw-rw-rw-
fmt.Println(fileInfo.IsDir()) //是否是目录 false
fmt.Println(fileInfo.Name()) //文件名 test11.txt
}

  (5)删除文件或文件夹

Remove:删除的内容只能是一个文件或空文件夹且必须存在

//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.Remove("D:/godir11")
if err != nil{
fmt.Println("删除失败", err)
return
}
fmt.Println("删除成功")
} //结果
删除失败 remove D:/godir11: The directory is not empty.

RemoveAll

  • 只要文件夹存在,删除文件夹
  • 无论文件是否有内容都会删除
  • 如果是文件则删除文件
//Learn_Go/main.go
package main import (
"fmt"
"os"
) func main() {
err := os.RemoveAll("D:/godir11")
if err != nil{
fmt.Println("删除失败", err)
return
}
fmt.Println("删除成功")
} //结果
删除成功

7.Go-用户信息和系统文件目录的更多相关文章

  1. 用户信息查询系统_daoImpl

    package com.hopetesting.dao.impl;import com.hopetesting.dao.UserDao;import com.hopetesting.domain.Us ...

  2. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  3. Linux下用于查看系统当前登录用户信息的4种方法

    1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出的信息包括: 用户名称 用 ...

  4. linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法

    在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 ...

  5. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...

  6. Linux显示目前登入系统的用户信息

    Linux显示目前登入系统的用户信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who youhaidong :0 2015-01-26 22:43 (: ...

  7. CAS 单点登录4.24版本 登录调用其它系统并且返回客户端用其它的用户信息改造

    1.登录调用其它系统.修改deployerConfigContext.xml <?xml version="1.0" encoding="UTF-8"?& ...

  8. C#中关于系统用户信息持久化(接上文)

    首先传几张效果图描述一下功能: 经过上文用户名和密码的验证后,就到了添加用户这一步,登陆后的用户可以添加新的用户,被添加的用户可以登陆系统. 这里会用到C#中的“正则表达式”对用户名格式进行判断,以及 ...

  9. UWP 应用获取各类系统、用户信息 (2) - 商店授权信息、零售演示模式信息、广告 ID、EAS 设备信息、硬件识别信息、移动网络信息

    应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...

随机推荐

  1. 【D3D12学习手记】4.3.8 Create the Depth/Stencil Buffer and View

    我们现在需要创建深度/模板缓冲区. 如§4.1.5所述,深度缓冲区只是一个2D纹理,用于存储最近的可见对象的深度信息(如果使用模板(stencil),则也会存储模板信息). 纹理是一种GPU资源,因此 ...

  2. django基础窗口类的使用

    django基础窗口form表单的运用 具体效果图如下: 首先确定表单中的数据集,先自己创建一个forms.py或者在原来的models.py中添加: 1代码如下 class ContactForm( ...

  3. BCP 数据导出

    EXEC master..xp_cmdshell 'BCP test.dbo.name out d:\t_002.txt -c -t -T' EXEC master..xp_cmdshell 'BCP ...

  4. docker中tomcat日志输出自定义

    一,默认tomcat日志配置文件 /data/tomcat/conf/logging.properties 1,修改tomcat/conf下的logging.properties [root@harb ...

  5. 刷新页面后,让控制台的js代码继续执行

    在各种限时,秒杀活动中,有个自动循环的点击的工具是很重要的. 为了方便起见,我们把Js代码放在浏览器的控制台执行,但是刷新页面后,js代码就清空了,也就无法执行. 可以用js代码实现一个不受页面刷新影 ...

  6. python爬虫概述

    爬虫的使用:爬虫用来对网络的数据信息进行爬取,通过URL的形式,将数据保存在数据库中并以文档形式或者报表形式进行展示. 爬虫可分为通用式爬虫或特定式爬虫,像我们经常用到的搜索引擎就属于通用式爬虫,如果 ...

  7. 语言模型评价指标Perplexity

    在信息论中,perplexity(困惑度)用来度量一个概率分布或概率模型预测样本的好坏程度.它也可以用来比较两个概率分布或概率模型.(应该是比较两者在预测样本上的优劣)低困惑度的概率分布模型或概率模型 ...

  8. linux shadow文件格式弱口令解密

    shadow格式弱口令为linux弱口令,通过kali linux 终端 john --w=字典 加上shadow文件, 扫描完成之后通过john --show 加上shadow文件出结果

  9. 在PostgreSQL中 pg_start_backup 做了什么?

    # 在PostgreSQL中 pg_start_backup 做了什么?HM 2019-07-30 ## pg_start_backup 做一个备份开始标记,还做了一些其他的操作,下面进行探寻. * ...

  10. 小菜鸟之oracle数据字典

    oracle数据字典 一.数据字典 数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询.数据字典是oracle数据库系统的信息核心,它是一组提供有关数 ...