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)
}