#zip #path #zip-archive #file #struct #path-buf

path-with-zip

用于 zip 归档的类似 PathBuf 的结构体

2 个不稳定版本

0.1.0 2023年2月1日
0.0.2 2023年1月31日

#451 in 压缩

MIT 许可证

13KB
238 代码行

path-with-zip

Rust 中 PathBuf 的扩展版本。

以下示例假设在可执行程序文件所在的同一目录中有一个 'test.zip' 文件。

('test.zip' 的根) |---test(文件夹) |---test.txt(文件)

示例:读取 zip 归档中的文件

use path_with_zip::PathBufWithZip;

let path = "test.zip///test/test.txt";

// The error type is zip::result::ZipError, which includes std::io::Error.
let bytes: Vec<u8> = PathBufWithZip::from(path).read_bytes_directly().unwrap();

另一种方式

use path_with_zip::PathBufWithZip;

let path = "test.zip///test/test.txt";
let pathbuf_with_zip = PathBufWithZip::from(path);

let mut zip_archive = pathbuf_with_zip.open_archive().unwrap();
// OR
// let mut zip_archive = pathbuf_with_zip.open_archive_into_memory().unwrap();

let bytes: Vec<u8> = pathbuf_with_zip.read_bytes(Some(&mut zip_archive)).unwrap();

示例:像使用 PathBuf 一样读取文件

use path_with_zip::PathBufWithZip;

let path = "test.zip";

let bytes: Vec<u8> = PathBufWithZip::from(path).read_bytes_directly().unwrap();

另一种方式

use path_with_zip::PathBufWithZip;

let path = "test.zip";
let pathbuf_with_zip = PathBufWithZip::from(path);

let bytes: Vec<u8> = pathbuf_with_zip.read_bytes(None).unwrap();

依赖项

~5MB
~82K SLoC