# filex 文件与目录工具:工作目录/运行目录定位、路径存在性判断、带进度回调的文件下载、 Zip 打包与解压(兼容 GBK 编码的中文文件名)。 > 迁移自 go-hua/common(原 dir.go / path.go / downFile.go / zip.go)。 ## 用法 ```go import "git.zeroonesoft.cn/golib/zogo/filex" // 目录定位 filex.GetWorkDir() // os.Getwd() filex.GetRunDir() // 可执行文件所在目录(兼容 go run,尾带分隔符) filex.GetCurrentAbPathByCaller() // 路径存在性 exists, err := filex.PathExists("/path/to/x") // 下载文件(fb 进度回调:总长度、已下载长度) err := filex.DownloadFile("https://example.com/a.zip", "D:/tmp/a.zip", func(length, downLen int64) { ... }) // Zip 打包(目录或单文件)/ 解压(Flags==0 按 GB18030 解码文件名,兼容中文 zip) err := filex.Zip("D:/data/src", "D:/tmp/src.zip") err := filex.Unzip("D:/tmp/src.zip", "D:/data/out") ``` 完整可运行例程:[examples/filex/main.go](../examples/filex/main.go) ## 注意 - `DownloadFile` 跳过 TLS 证书校验(`InsecureSkipVerify: true`),下载超时 300s, 只支持 GET;不要用于对安全性敏感的场景。 - `Zip` 目录项名以 `\` 结尾(历史行为,兼容易语言侧解压);`Unzip` 已兼容 UTF-8 与 GBK 两种文件名编码。 - `GetRunDir` 在 `go run`(临时目录)场景回退到工作目录。