go语言---初识os模块

go语言的os模块
  1. os包有3个子包,分别是:exec,负责执行外部命令;signal,对输入信息的访问;user,通过名称或ID查询用户账户;
  2. os包下的File结构体既可以表示文件,也可以表示目录;
package main

import (
	"fmt"
	"os"
	"os/user"
)

func main() {
	u, err := user.Current() // 当前登录的用户
	fmt.Println("错误信息err: ", err)
	fmt.Println("用户ID:Uid: ", u.Uid)
	fmt.Println("用户名:Username: ", u.Username)
	fmt.Println("用户组ID:Gid: ", u.Gid)
	fmt.Println("用户组名称:Name: ", u.Name)
	fmt.Println("用户家目录:HomeDir: ", u.HomeDir)

	// 使用os模块对文件进行操作
	// 1. 创建文件夹(是否已存在,父目录是否存在)
	// 使用os.Mkdir(路径, 权限), 返回值是错误信息,如果成功创建,返回值为<nil>,通过判断返回值判断是否成功执行;
	// Mkdir()只适用于创建父目录存在且要创建的目录不存在的情况;
	errMsg := os.Mkdir("./TEST", os.ModeDir)
	if errMsg != nil {
		fmt.Println("创建目录失败", errMsg)
		return
	} else {
		fmt.Println("创建目录成功")
	}

	// os.MkdirAll()可以用于父目录不存在,或者要创建的目录已经存在的情况;父目录不存在会同时创建;
	errMsg2 := os.MkdirAll("./A/B", os.ModeDir)
	if errMsg2 != nil {
		fmt.Println("创建目录失败", errMsg2)
		return
	} else {
		fmt.Println("创建目录成功")
	}

	// 创建文件 os.Create(文件名)  // 创建文件时,要求父目录存在,且如果目标文件已存在,再创建会用空白文件覆盖之前同名文件,慎用!!!
	f, errMsg3 := os.Create("test.txt")
	if errMsg3 != nil {
		fmt.Println("文件创建失败", errMsg3)
		return
	} else {
		fmt.Println(f.Name(), "文件创建成功")
	}


	// 重命名文件或者目录os.Rename(源文件名, 新文件名)
	errMsg4 := os.Rename("test.txt", "ttt.txt")
	if errMsg4 != nil {
		fmt.Println("文件重命名失败", errMsg4)
		return
	} else {
		fmt.Println("文件重命名成功")
	}


	// 获取文件或者目录的信息os.Open()
	f2, errMsg5 := os.Open("ttt.txt")
	if errMsg5 != nil {
		fmt.Println("文件打开失败", errMsg5)
		return
	}
	fmt.Println("文件打开成功, 内容如下: ")
	fileInfo, errMsg6 := f2.Stat()
	if errMsg6 != nil {
		fmt.Println("文件打开失败", errMsg6)
		return
	}
	fmt.Println("文件打开成功", fileInfo)
	fmt.Println("文件大小是:", fileInfo.Size())
	/*
	文件打开成功, 内容如下:
	文件打开成功 &{ttt.txt 32 {376751070 30803390} {2634404037 30803391} {2634404037 30803391} 0 114 0 1 {0 0}  1780534091 589824 273937 false}
	文件大小是: 114
	*/

	// 删除文件或目录 os.Remove() 目标存在且删除目录时目录为空才行  ;os.RemoveAll(),递归删除
	errMsg7 := os.Remove("ttt.txt")
	if errMsg7 != nil {
		fmt.Println("文件删除失败", errMsg7)
		return
	}
	fmt.Println("删除成功")
	//os.RemoveAll()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值