Golang 办公自动化--自动化管理文件和文件夹--输出文件和文件夹

自动化管理文件和文件夹

输出文件和文件夹

获取当前工作目录的根路径

包名:os
原型:func Getwd()(pwd string, err error)
作用:获取当前文件路径
返回:当前文件路径的字符串和一个 err 信息
示例:

package main

import (
    "fmt"
    "os"
)

func main() {
    dir, _ := os.Getwd()
    fmt.Println("当前路径:", dir)
}

输出:

当前路径: D:\Projects\Go\mGoLab01

组合路径

包名:os
原型:func Join(elem ...string) string
作用:将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠。结果是经过简化的,所有的空字符串元素会被忽略。
返回:组合后路径
示例:

package main

import (
    "fmt"
    "path"
)

func main() {
    out := path.Join("a", "b", "c")
    fmt.Println("组合后路径:", out)
}

输出:

组合后路径: a/b/c

遍历文件夹

包名:os
原型:func Open(name string) (file *File, err error)
作用:Open 打开一个文件用于读取。如果操作成功,返回的文件对象的方法可用于读取数据;对应的文件描述符具有 O_RDONLY 模式。如果出错,错误底层类型是 *PathError
返回:文件对象

包名:os
原型:func (f *File) Readdir(n int) (fi []FileInfo, err error)
作用:Readdir 读取目录f的内容,返回一个有n个成员的 []FileInfo,这些 FileInfo 是被 Lstat 返回的,采用目录顺序。对本函数的下一次调用会返回上一次调用剩余未读取的内容的信息。
如果 n > 0Readdir 函数会返回一个最多n个成员的切片。这时,如果Readdir返回一个空切片,它会返回一个非nil的错误说明原因。如果到达了目录f的结尾,返回值 err 会是 io.EOF
如果 n <= 0Readdir 函数返回目录中剩余所有文件对象的 FileInfo 构成的切片。此时,如果 Readdir 调用成功(读取所有内容直到结尾),它会返回该切片和nil的错误值。如果在到达结尾前遇到错误,会返回之前成功读取的 FileInfo 构成的切片和该错误。
返回:文件对象

示例:

package main

import (
    "fmt"
    "os"
)

func main() {

    f, err := os.Open(`F:\blog\officeauto`)
    if err != nil {
        panic(err)
    }

    fs, err := f.Readdir(0)
    if err != nil {
        panic(err)
    }
    for _, f := range fs {
        fmt.Println(f.Name())
    }

}

包名:io/ioutil
原型:func ReadDir(dirname string) ([]os.FileInfo, error)
作用:返回 dirname 指定的目录的目录信息的有序列表。
返回:文件对象

示例:

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {

    fs, err := ioutil.ReadDir(`F:\blog\officeauto`)
    if err != nil {
        panic(err)
    }
    for _, f := range fs {
        fmt.Println(f.Name())
    }

}

判断文件是否为目录

包名:os
原型:func (f *File) Stat() (fi FileInfo, err error)
作用:Stat 返回描述文件 fFileInfo 类型值。如果出错,错误底层类型是 *PathError
返回:文件对象

包名:os
原型:func (m FileMode) IsDir() bool
作用:IsDir 报告 m 是否是一个目录。
返回:bool
示例:

package main

import (
    "fmt"
    "os"
)

func main() {

    s, _ := os.Stat(`F:\blog\officeauto`) 
    fmt.Println(s.IsDir())
    fmt.Println(s.Mode().IsDir())

}

输出:

true
true

判断文件是否为文件

包名:os
原型:func (m FileMode) IsRegular() bool
作用:IsRegular 报告 m 是否是一个普通文件。
返回:bool
示例:

package main

import (
    "fmt"
    "os"
)

func main() {

    s, _ := os.Stat(`F:\blog\officeauto`) 
    fmt.Println(s.Mode().IsRegular())

}

输出:

false
上一篇:golang csv写入基础


下一篇:手写Promise