go-unarr库-golang解压7z文件
2024-05-27 20:02:01
Unar的Go绑定(RAR、TAR、ZIP和7z档案的解压缩库)
执行命令:
go get -v github.com/gen2brain/go-unarr
// 打开归档文件
a, err := unarr.NewArchive("test.7z") if err != nil { panic(err) } defer a.Close() // 确保在函数结束时关闭归档文件
// 读取归档文件中的第一个条目
err := a.Entry() if err != nil { panic(err) }
// 读取归档文件中第一个条目的全部内容
data, err := a.ReadAll() if err != nil { panic(err) }
// 列出归档文件中的所有内容
list, err := a.List() if err != nil { panic(err) }
// 读取归档文件中已知文件名的内容
err := a.EntryFor("filename.txt") if err != nil { panic(err) }
// 读取归档文件中已知文件名的全部内容
data, err := a.ReadAll() if err != nil { panic(err) }
// 读取归档文件中第一个条目的前8个字节
err := a.Entry() if err != nil { panic(err) } data := make([]byte, 8) n, err := a.Read(data) if err != nil { panic(err) }
// 读取归档文件中的所有条目
for { err := a.Entry() if err != nil { if err == io.EOF { // 如果已经读取完所有条目,则跳出循环 break } else { panic(err) } } // 读取当前条目的全部内容 data, err := a.ReadAll() if err != nil { panic(err) } }
// 将归档文件中的内容提取到指定路径
_, err := a.Extract("/tmp/path") if err != nil { panic(err) }