#document #parser #format-file #compound #read-write #file #io-read

ole

Microsoft复合文档文件的简单解析器和读取器

16个版本

使用旧Rust 2015

0.1.15 2018年3月23日
0.1.14 2018年3月21日

解析器实现 中排名第2652

Download history 14/week @ 2024-03-13 14/week @ 2024-03-20 24/week @ 2024-03-27 18/week @ 2024-04-03 19/week @ 2024-04-10 15/week @ 2024-04-17 15/week @ 2024-04-24 10/week @ 2024-05-01 19/week @ 2024-05-08 14/week @ 2024-05-15 10/week @ 2024-05-22 19/week @ 2024-05-29 15/week @ 2024-06-05 23/week @ 2024-06-12 23/week @ 2024-06-19 31/week @ 2024-06-26

每月下载量95
3 个crate(2 个直接)中使用

许可证:WTFPL

595KB
838

OLE

Crates.io Crates.io license

Microsoft复合文档文件的简单解析器和读取器。

这包括一个基本的解析器,用于验证给定文件或给定流的格式。它还包括一个读取器,用于迭代条目以及从OLE存储中提取文件。

用法

将此添加到您的 Cargo.toml

[dependencies]
ole = "0.1.15"

并将此添加到您的crate根目录

extern crate ole;

示例

use ole::Reader;
use std::io::{Read, Write};
let mut file = std::fs::File::open("assets/Thumbs.db").unwrap();
let mut parser = Reader::new(file).unwrap();
// Iterate through the entries
for entry in parser.iterate() {
    println!("{}", entry);
}
// We're going to extract a file from the OLE storage
let entry = parser.iterate().next().unwrap();
let mut slice = parser.get_entry_slice(entry).unwrap();
let mut buffer = std::vec::Vec::<u8>::with_capacity(slice.len());
slice.read_to_end(&mut buffer);
// Saves the extracted file
let mut extracted_file = std::fs::File::create("./file.bin").unwrap();
extracted_file.write_all(&buffer[..]);

版本

版本说明可在 RELEASES.md 中找到。

兼容性

ole 似乎适用于rust 1.9及以上版本。

许可证

http://www.wtfpl.net/about/

无运行时依赖项