Go语言开发合并文件小工具
小伙伴们,前端时间我在github 中下载了一些小学、初中、高中、大学用的课文,有些文件是被拆分过的需要合并起来,接下来我们利用go语言搞一个合并小工具。
下载GO并安装:
网址:https://go.dev/dl/
下载相应的版本,这里我们已windwos版本为例,下载后直接安装即可。
一路下一步
完成后我们在命令行输入 go version 出现以下界面说明安装成功。
将我们的go程序复制到拆分文件的目录中
命令行输入:go run mergePDFs.go
稍微等会儿后文件就合并成功了。
合并后的pdf就可以正常打开了。
go代码:
package main
import (
"io/ioutil"
"os"
"sort"
"strings"
)
func main() {dirPath := "." // 当前目录mergeSplitPDFsInDirectory(dirPath)
}
func mergeSplitPDFsInDirectory(dirPath string) {files, err := ioutil.ReadDir(dirPath)
if err != nil {panic(err)}splitFiles := make(map[string][]string)
for _, file := range files {
if file.IsDir() {continue}fileName := file.Name()
if strings.Contains(fileName, ".pdf.") {baseName := strings.Split(fileName, ".pdf.")[0] + ".pdf"splitFiles[baseName] = append(splitFiles[baseName], fileName)}}
for baseName, parts := range splitFiles {sort.Strings(parts) // 确保文件顺序正确mergeFiles(baseName, parts)}
}
func mergeFiles(baseName string, parts []string) {mergedFile, err := os.Create(baseName)
if err != nil {panic(err)}defer mergedFile.Close()for _, part := range parts {data, err := ioutil.ReadFile(part)
if err != nil {panic(err)}_, err = mergedFile.Write(data)
if err != nil {panic(err)}os.Remove(part) // 合并后删除分割文件}
}
感兴趣的小伙伴可以去尝试一下!
感谢大家的点赞和关注,我们下期见!