如何Rust壓縮目錄?
將目標目錄壓縮成一個 tarball。原始碼示例如圖所示:
此程式碼需要 flate2 壓縮/解壓縮庫。
use std::fs::File; use flate2::Compression; use flate2::write::GZEncoder; fn main() -> Result<(), std::io::Error>{ let gz = File::create("archive.tar.gz"); let encoder = GZEncoder::new(gz, Compression::default()); let mut tar = tar::Builder::new(enc); // add all files in the current directory to current_backup tar.append_dir_all(".", "current_backup")?; Ok(()); } |
解壓:
use std::fs::File; use std::path::PathBuf; use flate2::read::GzEncoder; use tar::Archive; use std::error::Error; fn main() -> Result<(), Box<dyn Error>>{ let file = File::open("path/to/archive.tar.gz")?; let mut archive = Archive::new(GzEncoder::new(file)); println!("Extracted: "); archive.entries()? .filter_map(|e| e.ok()) .map(|mut entry| -> Result<PathBuf, Box<dyn Error>> { let path = entry.path()?.to_owned(); Ok(path.to_path_buf()) }) .filter_map(|e| e.ok()) .for_each(|x| println!("> {}", x.display())); Ok(()) } |
相關文章
- linux 壓縮目錄並排除某個目錄Linux
- tar的打包-壓縮與解壓縮,並解壓到指定的目錄
- C++ MiniZip實現目錄壓縮與解壓C++
- 打包壓縮RAC oracle軟體目錄後重灌OS,解壓後目錄許可權變化Oracle
- 帝國CMS備份資料壓縮存放目錄
- Linux 下拷貝目錄及打包壓縮拷貝Linux
- Linux下對於檔案或者目錄的打包及壓縮、解壓Linux
- tar解壓到指定目錄並去掉壓縮檔案的層級資料夾
- Shell指令碼-壓縮指定目錄下前一天檔案指令碼
- 如何使用Rust查詢目錄中的所有 txt 檔案?Rust
- 如何解壓 tar 檔案到不同的目錄中
- PHP ZipArchive 解壓縮時,去掉zip包裡的多餘目錄層級PHPHive
- Linux tar壓縮時排除某個目錄或檔案的引數Linux
- 如何把影片壓縮,影片壓縮軟體哪個最好
- png格式如何壓縮,圖片壓縮工具哪個好
- APK體積壓縮整理記錄APK
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- JAVA壓縮和解壓縮Java
- zip壓縮和解壓縮
- linux壓縮解壓縮Linux
- 字串的壓縮和解壓縮字串
- 檔案壓縮和解壓縮
- win10 如何壓縮影片 win10怎麼壓縮影片Win10
- pdf壓縮教程:如何把pdf檔案壓縮得小一點
- 如何壓縮 HTTP 請求正文HTTP
- 使用Rust的ripunzip和rayon並行解壓縮檔案Rust並行
- JS壓縮方法及批量壓縮JS
- aix 下壓縮與解壓縮AI
- linux壓縮和解壓縮命令Linux
- tar 分卷壓縮&解壓縮命令
- AIX 上壓縮與解壓縮AI
- 面試題目 字串的去重與壓縮(統計)面試題字串
- linux下壓縮解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- 簡單的zip壓縮和解壓縮
- Linux壓縮及解壓縮命令Linux
- linux壓縮和解壓縮命令大全Linux
- Python實現壓縮和解壓縮Python