文件归档与命令行工具性能优化
一、文件归档功能添加
在删除占用大量空间的文件之前,我们通常希望以压缩形式备份这些文件,以便后续需要时可以恢复使用。下面将为 walk 工具添加归档功能。
- 导入必要的包
在actions.go
文件中,添加compress/gzip
包到导入列表:
import (
"compress/gzip"
"fmt"
"io"
"log"
"os"
"path/filepath"
)
- 定义归档函数
定义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