16 个版本 (9 个重大更新)
0.10.0 | 2024年4月15日 |
---|---|
0.9.0 | 2023年10月24日 |
0.8.1 | 2023年6月20日 |
0.7.3 | 2022年7月5日 |
0.1.0 | 2017年3月20日 |
在 文件系统 中排名 82
每月下载量 649,444
在 30 个 Crates 中使用(直接使用 10 个)
225KB
5K SLoC
包含 (Cab 文件,17KB) loop_in_chain,(Cab 文件,17KB) tests/panics_fuzzed/alloc_panic,(Cab 文件,17KB) tests/panics_fuzzed/minialloc_panic,(Cab 文件,15KB) loop_in_alloc,(Cab 文件,14KB) loop_in_directory,(Cab 文件,15KB) loop_in_minialloc 以及 3 个其他文件 等。
rust-cfb
一个用于读取/写入 复合文件二进制(结构化存储)文件的 Rust 库。有关格式规范,请参阅 MS-CFB。
许可证
rust-cfb 在 MIT 许可证 下提供。
lib.rs
:
一个用于读取/写入 复合文件二进制(结构化存储)文件的库。有关格式规范,请参阅 MS-CFB。
复合文件二进制 (CFB) 文件,也称为 结构化存储文件 或简称为 复合文件,就像一个简单的文件系统在文件中。复合文件包含一个 存储 对象(即目录)的树,每个对象都可以包含 流 对象(即文件)或其他存储对象。该格式旨在允许对这些流和存储对象进行合理高效的就地修改和调整大小,而无需完全重写磁盘上的 CFB 文件。
示例用法
use cfb;
use std::io::{Read, Seek, SeekFrom, Write};
// Open an existing compound file in read-write mode.
let mut comp = cfb::open_rw("path/to/cfb/file").unwrap();
// Read in all the data from one of the streams in that compound file.
let data = {
let mut stream = comp.open_stream("/foo/bar").unwrap();
let mut buffer = Vec::new();
stream.read_to_end(&mut buffer).unwrap();
buffer
};
// Append that data to the end of another stream in the same file.
{
let mut stream = comp.open_stream("/baz").unwrap();
stream.seek(SeekFrom::End(0)).unwrap();
stream.write_all(&data).unwrap();
}
// Now create a new compound file, and create a new stream with the data.
let mut comp2 = cfb::create("some/other/path").unwrap();
comp2.create_storage("/spam/").unwrap();
let mut stream = comp2.create_stream("/spam/eggs").unwrap();
stream.write_all(&data).unwrap();
依赖项
~360KB