如何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
- C++ MiniZip實現目錄壓縮與解壓C++
- 帝國CMS備份資料壓縮存放目錄
- Linux下對於檔案或者目錄的打包及壓縮、解壓Linux
- tar解壓到指定目錄並去掉壓縮檔案的層級資料夾
- PHP ZipArchive 解壓縮時,去掉zip包裡的多餘目錄層級PHPHive
- 如何使用Rust查詢目錄中的所有 txt 檔案?Rust
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- APK體積壓縮整理記錄APK
- 如何把影片壓縮,影片壓縮軟體哪個最好
- png格式如何壓縮,圖片壓縮工具哪個好
- 檔案壓縮和解壓縮
- win10 如何壓縮影片 win10怎麼壓縮影片Win10
- pdf壓縮教程:如何把pdf檔案壓縮得小一點
- 使用Rust的ripunzip和rayon並行解壓縮檔案Rust並行
- 你是如何壓縮字型的?
- Python實現壓縮和解壓縮Python
- linux下壓縮解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- JS壓縮方法及批量壓縮JS
- [轉帖]Linux tar壓縮命令 排除某個目錄 && 排除某種格式字尾檔案Linux
- Linux tar分卷壓縮與解壓縮Linux
- win10 如何壓縮視訊 win10怎麼壓縮視訊Win10
- Linux壓縮解壓Linux
- CentOS 壓縮解壓CentOS
- java中檔案如何加密壓縮?Java加密
- 如何gulp壓縮,醜化程式碼
- 如何將word文件壓縮變小?
- 如何下載安裝壓縮包
- 記錄---前端Vue使用ffmpeg壓縮影片再上傳前端Vue
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- Linux中檔案的壓縮和解壓縮Linux
- 打包/壓縮
- Gzipped 壓縮
- linuxtar解壓和壓縮Linux
- linux分卷壓縮解壓Linux
- Linux解壓檔案到指定目錄的方法Linux
- 壓縮包格式有哪些?壓縮包格式大全