专栏首页有趣的django7.Go-用户信息和系统文件/目录

7.Go-用户信息和系统文件/目录

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("删除成功")
}

//结果
删除成功

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux 下查看系统当前登录用户信息

    1. w : Show who is logged on and what they are doing.

    xuyaowen
  • Node.js 文件系统--读取和删除目录

    陈不成i
  • 大量 Mega 帐户的登录信息遭泄露并暴露了用户文件

    据外媒 ZDNet 报道,Mega —— 这家于新西兰成立并提供在线云存储和文件托管服务的公司,目前被发现其平台中有成千上万的帐号凭证信息已在网上被公开发布。

    C4rpeDime
  • python 实现选课系统

    代码: 链接:https://pan.baidu.com/s/1pNmOCjD 密码:2rfj

    py3study
  • 比较好用的免费的外网端口映射软件holer使用教程

    Holer exposes local servers behind NATs and firewalls to the public internet ove...

    码路
  • dumpe2fs 命令的使用,转储 ext2/ext3/ext4 文件系统信息

    xuyaowen
  • golang 开源后台管理系统

    go-admin是一个go语言开发的后台管理系统,该系统以角色为基础的权限管理设计(RBAC),完成了系统管理模块功能的开发(其他示例模块后续加上),采用前后端...

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

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

    joshua317
  • CentOS下用于查看系统当前登录用户信息的4种方法

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

    拓荒者
  • CentOS下用于查看系统当前登录用户信息的4种方法

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

    码农编程进阶笔记
  • python作业大纲分析

    目前自学python这么久,零零散散的写了几次作业,下面是几个在完成过程中遇到困难较多的作业。

    py3study
  • Go语言环境搭建详解

    最近写了很多Go语言的原创文章,其中Go语言实战系列30篇,近15W字,还有最近更新的Go经典库系列,不过通过大家的咨询来看,还是想要一些入门的知识,这一篇文章...

    飞雪无情
  • Go语言环境搭建详解(2020版)

    最近写了很多Go语言的原创文章,其中Go语言实战系列30篇,近15W字,还有最近更新的Go经典库系列,不过通过大家的咨询来看,还是想要一些入门的知识,这一篇文章...

    飞雪无情
  • Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得...

    用户1170933
  • Golang安装和配置

    在Mac,Windows和Linux是那个平台上都支持Golang,您可以从 https://golang.org/dl/下载相应平台的二进制文件。该网站在国内...

    会呼吸的Coder
  • go-admin-基于Gin + Vue + Element UI的前后端分离权限管理系统

    系统初始化极度简单,只需要配置文件中,修改数据库连接,系统启动后会自动初始化数据库信息以及必须的基础数据

    ccf19881030
  • 使用go-swagger为golang API自动生成swagger文档

    Swagger是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言,都在支持和使用Swag...

    李海彬
  • Web 系统的安全性测试之文件和目录测试

    随着因特网的不断发展,人们对网络的使用越来越频繁,通过网络进行购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃...

    小老鼠
  • golang下载安装

    官方二进制发行版 支持 FreeBSD(8-STABLE 发行版及以上)、Linux、Mac OS X(Snow Leopard 及以上)和 Windows 操...

    超蛋lhy

扫码关注云+社区

领取腾讯云代金券