You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:07:58