文件归档与命令行工具性能优化
1. 文件归档功能实现
在删除占用过多空间的文件之前,我们可以将它们以压缩形式备份,以便后续需要时使用。下面为 walk
工具添加归档功能。
1.1 导入必要的包
在 actions.go
文件中添加 compress/gzip
包到导入列表:
import (
"compress/gzip"
"fmt"
"io"
"log"
"os"
"path/filepath"
)
1.2 定义归档函数
定义 archiveFile
函数来归档文件,该函数有两个主要职责:保留相对目录树,使文件相对于源根目录以相同目录结构归档;压缩数据。
func archiveFile(destDir, root, path string) error {
info, err := os.Stat(destDir)
if err != nil {
return err
}
if !info.IsDir() {
return fmt.Errorf("%s is not a directory", destDir)
}
relDir, err := filepath.Rel(root, filepath.Dir(path))