Files
zogo/examples/filex/main.go
T
4566704 c7e8eb14f8 feat(filex): 自 go-hua/common 迁入文件目录工具并独立成包
- 运行目录定位、路径存在性、带进度回调下载、Zip 打包/解压(兼容 GBK 中文文件名)
- 附单元测试、examples/filex 例程与包 README
2026-09-20 12:20:50 +08:00

54 lines
1.3 KiB
Go

// filex 包示例:文件与目录工具(运行目录、路径存在性、Zip 打包解压)
package main
import (
"fmt"
"os"
"path/filepath"
"git.zeroonesoft.cn/golib/zogo/filex"
)
func main() {
// 路径与目录
exists, _ := filex.PathExists(".")
fmt.Println("当前目录存在:", exists)
fmt.Println("工作目录:", filex.GetWorkDir())
fmt.Println("运行目录:", filex.GetRunDir())
// Zip 打包与解压(兼容 GBK 中文文件名)
zipDemo()
}
func zipDemo() {
dir, err := os.MkdirTemp("", "zogo-filex-*")
if err != nil {
fmt.Println("创建临时目录失败:", err)
return
}
defer os.RemoveAll(dir)
src := filepath.Join(dir, "aaa")
if err := os.MkdirAll(src, 0755); err != nil {
fmt.Println(err)
return
}
if err := os.WriteFile(filepath.Join(src, "hello.txt"), []byte("hello zip"), 0644); err != nil {
fmt.Println(err)
return
}
zipPath := filepath.Join(dir, "aaa.zip")
if err := filex.Zip(src, zipPath); err != nil {
fmt.Println("Zip 失败:", err)
return
}
dest := filepath.Join(dir, "out")
if err := filex.Unzip(zipPath, dest); err != nil {
fmt.Println("Unzip 失败:", err)
return
}
data, err := os.ReadFile(filepath.Join(dest, "aaa", "hello.txt"))
fmt.Println("解压读回内容:", string(data), "错误:", err)
}