import (
"github.com/cnlesscode/gotool/gfs"
)
函数功能 : 判断文件或者文件夹是否存在
返回格式 : bool
fmt.Printf("%v\n", gfs.PathExists("./a.txt")) // true || false
函数功能 : 判断文件是否存在
返回格式 : bool
fmt.Printf("%v\n", gfs.FileExists("./a.txt")) // true || false
函数功能 : 判断文件夹是否存在
返回格式 : bool
fmt.Printf("%v\n", gfs.DirExists("./fs")) // true || false
函数功能 : 拷贝文件
返回格式 : error
err := gfs.CopyFile("./a.txt", "./b.txt") // true
if err != nil {
fmt.Printf("error: %v\n", err.Error())
}
函数功能 : 拷贝文件夹
返回格式 : error
err := gfs.CopyDir("./fs", "./a") // true
if err != nil {
fmt.Printf("error: %v\n", err.Error())
}
函数功能 : 创建文件夹
返回格式 : error
err := gfs.MakeDir("./a/b/c") // true
if err != nil {
fmt.Printf("error: %v\n", err.Error())
}
函数功能 : 删除文件夹
返回格式 : error
err := gfs.RemoveDir("./a") // true
if err != nil {
fmt.Printf("error: %v\n", err.Error())
}
函数功能 : 获取文件夹大小, 单位字节
返回格式 : 文件夹大小, error
size, err := gfs.DirSize("./fs") // true
if err != nil {
fmt.Printf("error: %v\n", err.Error())
} else {
fmt.Printf("size: %v\n", size)
}
函数功能 : 获取文件夹或文件夹修改时间
返回格式 : 文件夹或文件夹修改时间, error
modTime, err := gfs.ModifyTime("./fs")
if err != nil {
fmt.Printf("err.Error(): %v\n", err.Error())
} else {
fmt.Printf("modTime: %v\n", modTime)
}
函数功能 : 读取文件内容
返回格式 : 文件内容, error
content, err := gfs.ReadFile("./a.txt")
if err != nil {
fmt.Printf("err.Error(): %v\n", err.Error())
} else {
fmt.Printf("content: %v\n", content)
}
}
函数功能 : 向文件内写入数据 [ 自动创建文件 ]
返回格式 : error
err := gfs.WriteContentToFile("content ...", "./a/b/c/", "ab.txt")
if err != nil {
fmt.Printf("err.Error(): %v\n", err.Error())
}
函数功能 : 向文件尾部追加内容
返回格式 : error
err := gfs.AppendContentToFile("\nappend content ...", "./ab.txt")
if err != nil {
fmt.Printf("err.Error(): %v\n", err.Error())
}
}
函数功能 : 向文件头部部追加内容 返回格式 : error
err := gfs.PrependContentToFile("Prepend content ...\n", "./ab.txt")
if err != nil {
fmt.Printf("err.Error(): %v\n", err.Error())
}
函数功能 : 获取文件扩展名
返回格式 : string
fmt.Printf("%v\n", gfs.GetExtension("./a/b/c.tXt"))
函数功能 : 从路径中获取文件名
返回格式 : string
fileName := gfs.GetFileName("../a/b/c/rd.md", "/")
fmt.Printf("fileName: %v\n", fileName)
// fileName: rd.md
函数功能 : 获取文件夹结构
参数说明 : 1 deep 是否递归查询, 2 起始文件夹数据及结构保存数据
使用演示 :
package main
import (
"fmt"
"strings"
"testing"
"github.com/cnlesscode/gotool/gfs"
)
// 单元测试
// 测试命令 : go test -v -run=TestMain
func TestMain(t *testing.T) {
result := gfs.ScanDirStruct{
Name: "根目录",
Path: "./a",
IsDir: true,
}
err := gfs.ScanDir(false, &result)
if err == nil {
ShowDir(&result, 0)
} else {
fmt.Printf("err: %v\n", err)
}
}
func ShowDir(root *gfs.ScanDirStruct, step int) {
fmt.Printf(strings.Repeat(" ", step)+"|_ %s [目录]\n", root.Name)
step++
for _, v := range root.Sons {
if v.IsDir {
ShowDir(v, step)
} else {
fmt.Printf(strings.Repeat(" ", step)+"|_ %s [文件]\n", v.Name)
}
}
}