[caption id="attachment_902" align="alignnone" width="300"]Golang标准库http/url Values Golang标准库[/caption] 今天我们继续os包分析~~~木有废话~~ (1)os.Rename()这个函数的原型是func Rename(oldname, newname string) error,输入的是旧文件名,新文件名,然后返回一个error其实这个函数的真正实现用的syscall.Rename()然后通过MoveFile(from *uint16, to *uint16) (err error) = MoveFileW来重新命名这个我们讲syscall的时候再给大家说

 import (
	"fmt"
	"os"
)

func main() {
	err := os.Rename("1.go", "2.go")
	if err != nil {
		if os.IsExist(err) { //判断一个是否文件已经存在的错误
			fmt.Println("文件已经存在")
			os.Rename("1.go", "widuu_1.go")
		}
	}
}
(2)os.SameFile()这个函数的作用是检测文件的信息是否相同所谓文件信息指的是os.Stat(),函数原型是func SameFile(fi1, fi2 FileInfo) bool 举个例子
import (
	"fmt"
	"os"
)

func main() {
	f1, _ := os.Stat("1.go")
	f2, _ := os.Stat("21.go")
	if os.SameFile(f1, f2) {
		fmt.Println("两个文件一样")
		return
	}
	fmt.Println("两个文件不一样")
}
(3)os.Setenv()这个函数是设置环境变量的很简单,函数原型func Setenv(key, value string) error输入对应的key-value字符串,返回error信息
import (
	"fmt"
	"os"
)

func main() {
	err := os.Setenv("WD_PATH", "D:/golang")
	if err != nil {
		fmt.Println(err)
	}
	env := os.Getenv("WD_PATH")
	fmt.Println(env) //返回的是D:/golang
}
(4)os.Symlink()对于这个函数我只能说不支持windows平台的,创建软连接func Symlink(oldname, newname string) error
import (
	"fmt"
	"os"
)

func main() {
	err := os.Symlink("1.go", "21.go") //不支持windows平台只支持linux和unix
	fmt.Println(err)
}
(5)os.TempDir()这个函数很简单,返回你本地的系统temp目录,函数原型func TempDir() string,嘿嘿,做个对比别乱了
import (
	"fmt"
	"io/ioutil"
	"os"
)

func main() {
	//创建临时的tmp
	dir, _ := os.Getwd()
	path, _ := ioutil.TempDir(dir, "tmp")
	fmt.Println(path) //D:\test\tmp764030415
	//这个返回的是系统temp
	temp := os.TempDir()
	fmt.Println(temp) //windows来说C:\Users\ADMINI~1\AppData\Local\Temp
}
(6)os.Truncate()改变文件的f.Size()这个就改变了文件内容的长度了,函数原型func Truncate(name string, size int64) error,记得哈第二个是int64
import (
	"fmt"
	"os"
)

func main() {
	f, _ := os.Stat("1.go")
	fmt.Println(f.Size())			//1.go 83
	err := os.Truncate("1.go", 10)  
	if err != nil {
		fmt.Println(err)
	}
	f, _ = os.Stat("1.go")
	fmt.Println(f.Size())		  //1.go现在是10 文件也变成了package ma
}
明天正式开 type File struct{}

点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部