Golang系列:其他常见的文件操作
Posted liuhe688
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang系列:其他常见的文件操作相关的知识,希望对你有一定的参考价值。
在前面两篇中,我们介绍了常用的文件读写操作,今天接着来研究一下,其他一些常见的文件操作。
首先是创建目录:
package main
import (
"fmt"
"os"
)
// 显示文件信息
func printFileInfo(info os.FileInfo) {
fmt.Printf("name: %v
", info.Name())
fmt.Printf("size: %v
", info.Size())
fmt.Printf("mode: %v
", info.Mode())
fmt.Printf("is dir: %v
", info.IsDir())
fmt.Printf("modify time: %v
", info.ModTime())
}
func main() {
// 创建目录
os.Mkdir("go", os.ModePerm)
// 创建多级目录
os.MkdirAll("go/lang", os.ModePerm)
// 返回FileInfo实例
info, _ := os.Stat("go/lang")
printFileInfo(info)
}
检测目录或文件是否存在:
package main
import (
"fmt"
"os"
)
// 显示文件信息
func printFileInfo(info os.FileInfo) {
fmt.Printf("name: %v
", info.Name())
fmt.Printf("size: %v
", info.Size())
fmt.Printf("mode: %v
", info.Mode())
fmt.Printf("is dir: %v
", info.IsDir())
fmt.Printf("modify time: %v
", info.ModTime())
}
func main() {
path := "go/lang/test.txt"
// 返回FileInfo实例
info, err := os.Stat(path)
// 检测文件或目录是否存在
if (os.IsNotExist(err)) {
// 创建文件
os.Create(path)
// 重新获取FileInfo
info, _ = os.Stat(path)
}
printFileInfo(info)
}
列举目录下的所有文件:
package main
import (
"fmt"
"io/ioutil"
"path"
)
func main() {
dirPath := "go/lang"
dirInfo, _ := ioutil.ReadDir(dirPath)
for _, fileInfo := range dirInfo {
fileName := fileInfo.Name()
filePath := path.Join(dirPath, fileName)
fmt.Println(filePath)
}
}
最后是移除目录或文件:
package main
import (
"fmt"
"os"
)
func main() {
// 移除文件或空目录
os.Remove("go/lang/test2.txt")
// 移除文件或目录
os.RemoveAll("go")
}
以上是关于Golang系列:其他常见的文件操作的主要内容,如果未能解决你的问题,请参考以下文章