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系列:其他常见的文件操作的主要内容,如果未能解决你的问题,请参考以下文章

golang goroutine例子[golang并发代码片段]

golang代码片段(摘抄)

从别人的代码中学习golang系列--03

Golang系列文章:抓取网页内容

覆盖一个常见的片段帮助其他标签片段

代码片段 - Golang 实现简单的 Web 服务器