Rust生成tar.gz压缩包后立即复制导致副本损坏的问题求助
Rust生成tar.gz压缩包后立即复制导致副本损坏的问题求助
我是Rust新手,每天都在学习这门语言。最近我写了一段代码,用来创建一个tar.gz压缩包,然后把这个压缩包复制一份。我参考了Rust相关的压缩示例来写的代码,但遇到了一个奇怪的问题:
生成的原始压缩包archive.tar.gz是正常的,可以正常解压,但复制出来的archive2.tar.gz却损坏了,完全没法解压。我实在搞不懂原因出在哪,有没有大佬能帮我分析一下?
我的依赖配置(Cargo.toml)
[dependencies] tar = "0.4.38" flate2 = "1.0.25"
我的代码(main.rs)
use flate2::{write::GzEncoder, Compression}; use std::fs::{self, File}; fn main() { let tar_gz = File::create("archive.tar.gz").unwrap(); let enc = GzEncoder::new(tar_gz, Compression::default()); let mut tar = tar::Builder::new(enc); // 压缩一个包含文件和子目录的目录 tar.append_dir_all("target_dir", "target_dir").unwrap(); tar.finish().unwrap(); fs::copy("archive.tar.gz", "archive2.tar.gz").unwrap(); // 复制出来的archive2.tar.gz是损坏的 }
备注:内容来源于stack exchange,提问作者takanopontaro
相关产品推荐
相关产品推荐

