go 语言 打包 /data/html/js/ 目录下的一级子目录中的.js文件
时间: 2023-12-10 13:04:18 浏览: 21
以下是使用 Go 语言打包 `/data/html/js/` 目录下的一级子目录中的.js文件的示例代码:
```go
package main
import (
"archive/zip"
"io"
"os"
"path/filepath"
"strings"
)
func main() {
// 指定目录路径
directoryPath := "/data/html/js/"
// 创建压缩包文件
zipFile, err := os.Create("js_files.zip")
if err != nil {
panic(err)
}
defer zipFile.Close()
// 创建 zip.Writer
zipWriter := zip.NewWriter(zipFile)
defer zipWriter.Close()
// 遍历目录下的一级子目录
err = filepath.Walk(directoryPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() && path != directoryPath { // 只处理一级子目录
return filepath.SkipDir
}
if !info.IsDir() && strings.HasSuffix(info.Name(), ".js") { // 只处理.js文件
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
// 获取相对路径
relPath, err := filepath.Rel(directoryPath, path)
if err != nil {
return err
}
// 创建压缩文件的 Writer
writer, err := zipWriter.Create(relPath)
if err != nil {
return err
}
// 将文件内容写入压缩文件
_, err = io.Copy(writer, file)
if err != nil {
return err
}
}
return nil
})
if err != nil {
panic(err)
}
}
```
上述代码会在当前目录下创建一个名为 `js_files.zip` 的压缩包,其中包含了 `/data/html/js/` 目录下的一级子目录中的所有.js文件。你可以根据需要修改目录路径和压缩包文件名。