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. Ubuntu16版本中安装MongoDB

    https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/ //授权 https://docs.mongodb.com/man ...

  2. java:zookeeper集群配置,dubbo

    1.zookeeper集群配置: 2.dubbo:(配置见视频)

  3. charles安装&破解

    走在测试的道路上,我们总归要学习抓包,仅仅是为了更好的定位bug出现的位置.抓包工具何其之多,但是我个人推荐的是charles,主要是因为windows和ios可以同时使用,这样就可以方便不少.不废话 ...

  4. python-阿里镜像源-pip

    将pip源设置为国内 >>>windows 1 地址栏输入%appdata% 2 新建pip文件价 3 文件夹里建pip.ini 内容: [global] timeout = 600 ...

  5. 安卓的一些UI美化框架的使用

    目录 一.前言 二.Android-Bootstrap 三.Sweet Alert Dialog 四.ExplosionField 一.前言 在这里记录一些用到过的觉得还算不错的UI第三方开源美化框架 ...

  6. 联想H430怎么清除cmos密码?

    联想H430怎么清除cmos密码? 方法一:长时间对cmos放电 首先断掉主机电源,然后找到主板上的纽扣电池,将电池小心取出,然后使用一金属导体,短接电池座中的正负极,这样也可达到快速放电的目的. 有 ...

  7. Django book 2.0 的中文翻译

    传送门大法好:  http://djangobook.py3k.cn/2.0/

  8. query函数的可查询数据

    #encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func from sqlalche ...

  9. jquery的offset().top与javascript的offsetTop区别?

    offset().top是jquery的方法,需引入jquery,它获取你绑定元素上边框相对于html上边界的偏移量 offsetTop是原生js的方法,它获取你绑定元素上边框相对于离自己最近且pos ...

  10. 2019年8月23日 星期五(workerman和swoole的区别)

    两个框架我都有用过,workerman用得更多些,这2个框架都很出名,它们的出现大大的提高了php的应用范围及知名度 workerman和swoole都是php socket 服务器框架,都支持长连接 ...