青训营笔记技术学习总结 关于Go文件目录操作 | 青训营

72 阅读2分钟

Go平台实现了与操作系统无关的文件操作目录。什么叫与操作系统无关呢?学过Linux的同学应该就知道,我们写代码很多在Windows上,但是部署项目一般在Linux服务器,而Linux的文件系统和Windows又有着较大的差异,如果文件接口与操作系统有关的话,那我们能够在Windows上正常运行的代码部署到服务器可能就会出现各种各样的问题。

创建文件

func createFile() {  
f, err := os.Create("D:\\a.txt")  
if err != nil {  
fmt.Println(err)  
} else {  
fmt.Println(f.Name())  
}  
}  
func main() {  
createFile()  
}

这样就在D盘根目录下创建了一个a.txt文件了。注意如果你创建文件的参数不是完整路径,那么默认就是在你这个项目的根目录下创建。

创建目录

目录和文件有什么区别呢,目录可以看作一个文件夹。

func makeDir() {  
err := os.Mkdir("a", os.ModePerm)  
if err != nil {  
fmt.Println(err)  
}  
  
err = os.MkdirAll("b\\c\\d", os.ModePerm)  
if err != nil {  
fmt.Println(err)  
}  
}

路径的问题和创建文件是一样的,你写全了他就按照你写的给你创建,你写的不全就是在项目的根目录下创建。一共有两个方法,一个是Mkdir,就是创建单层文件夹,还有一个是MkdirAll,就是递归创建,可以一口气创建多层。注意这两个方法都有两个参数,第二个是指定你这个操作的权限是多大,ModePerm就是最高权限。

删除文件、目录

和创建文件,创建目录没什么区别,简单的调用一下os库就可以了。 remove是删除单个文件,removeAll是递归删除下面所有的文件或者目录。

func remove() {  
err := os.Remove("a.txt")  
if err != nil {  
fmt.Println(err)  
}  
err = os.RemoveAll("b")  
if err != nil {  
fmt.Println(err)  
}  
}

获得当前工作目录

GetWd()可以获得你当前工作目录

func wd() {  
dir, err := os.Getwd()  
if err != nil {  
fmt.Println(dir)  
}  
fmt.Println(dir)  
}