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. 惊讶!我定的日志规范被CTO在全公司推广了

    打印日志是一门艺术,但长期被开发同学所忽视.日志就像车辆保险,没人愿意为保险付钱,但是一旦出了问题都又想有保险可用.我们打印日志的时候都很随意,可是用的时候会吐槽各种 SB 包括自己!写好每一条日志吧 ...

  2. ES5与ES6常用语法教程之 ②解构语法糖、声明变量异同

    js常用语法系列教程如下 es5与es6常用语法教程(1) es5与es6常用语法教程(2) es5与es6常用语法教程(3) es5与es6常用语法教程(4) es5与es6常用语法教程(5) es ...

  3. Django下orm学习 一对多

    概念说明 ORM:关系对象映射的全称是 Object Relational Mapping, 简称ORM SQLAlchemy: 是Python编程语言下的一款ORM框架,该框架建立在数据库API之上 ...

  4. 【MM系列】SAP S/4 HANA BP创建客户/供应商的一点想法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA BP创建客 ...

  5. numpy array和mat的乘法

    1.mat()函数中矩阵的乘积可以使用(星号) *  或 .dot()函数,其结果相同.而矩阵对应位置元素相乘需调用numpy.multiply()函数. a = np.mat([1, 2, 3]) ...

  6. 【Linux开发】linux设备驱动归纳总结(三):5.阻塞型IO实现

    linux设备驱动归纳总结(三):5.阻塞型IO实现 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  7. 关于绕过cookie 同源策略,和同时向前台返回图片和脚本的解决方案

    绕过cookie的同源策略 向前端写入脚本时使用domain来绕过同源策略. 比如 domain= baidu.com .次脚本生成的cookie可以在 *.baidu.com中使用 /// < ...

  8. Sql Service 存储过程、触发器

    if exists (select * from sysobjects where name='tb_admin') drop table tb_admin go create table tb_ad ...

  9. hadoop3.1.2启动和停止

    1/  启动 启动zookeeper: 三个节点上都zkServer.sh start 启动hdfs和yarn: 101上start-dfs.sh  102上start-yarn.sh 启动hive: ...

  10. CVE-2017-17558漏洞学习

    简介 这是USB core中的一个拒绝服务漏洞.带有精心设计的描述符的恶意USB设备可以通过在配置描述符中设置过高的bNumInterfaces值来导致内核访问未分配的内存.虽然在解析期间调整了该值, ...