5 个不稳定版本
0.3.0-alpha.1 | 2021 年 9 月 27 日 |
---|---|
0.2.1 | 2021 年 9 月 25 日 |
0.1.0 | 2021 年 9 月 25 日 |
0.0.1 |
|
#333 在 操作系统 中
28 每月下载次数
20KB
213 行
fsextra
注意: 此库未经过外部安全测试,使用风险自担。
fsextra
是一组扩展,旨在简化与基于 Unix 的文件系统的交互。此库通过启用crypto
功能(> v0.2.0
)支持文件和目录上的加密操作。
- 当前版本:
v0.3.0-alpha.1
(变更日志)
安装
通过更新您的 Cargo.toml
文件以包含 fsextra = "*"
来安装默认功能。
# your Cargo.toml
[package]
name = "your-package"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.net.cn/cargo/reference/manifest.html
[dependencies]
fsextra = "*"
# optionally enable `crypto` feature
fsextra = { version = "*", features = ["crypto"] }
已知限制
MetadataExtended
和FileExtended
(及其实现)仅在基于 Unix 的文件系统上进行了测试/支持(尽管可能可行)。
依赖关系
- 如果启用了
crypto
功能,则此库需要ring@0.16.20
。
兼容性
此库支持基于 Unix 的操作系统,并且目前尚未对其他操作系统进行测试(v0.3.0
)。从 v0.3.0
开始,任何特定于 OS 的功能都隐藏在 cfg
属性之后。从 v0.3.0-alpha.1
开始,更新已在 Unix(Linux)和 Windows 操作系统上进行测试。
v0.3.00-alpha.1
(及以后版本)针对Windows操作系统进行测试。v0.3.00
(及以后版本)引入了一个新的接口:Digest
,要求将DigestExt
、Sha2
和Sha5
移动到legacy
。在更新到v0.3.00
时可能需要代码更改。v0.2.0
(及更早版本)可能编译成适用于其他操作系统的版本,然而这可能会导致未定义的结果或失败。
基本用法
关于完整的示例,请参阅我们的文档。
use fsextra::extensions::{MetadataExtended, FileExtended};
use fsextra::crypto::digest::{Digest, DigestAlgorithm};
use std::fs::File;
use std::io::{Write, Result};
fn main() -> Result<()> {
let file = File::open("path/to/executable")?;
let metadata = file.metadata()?;
if !metadata.is_executable() {
let digest = file.digest(DigestAlgorithm::Sha2);
assert_eq!(hex::encode(digest), "7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9");
}
Ok(())
}
测试
跨目标
x86_64-pc-windows-gnu
x86_64-unknown-linux-gnu
arm-unknown-linux-gnueabi
可以使用Cargo(与往常一样)通过cargo test
测试此库。建议同时进行带有和没有--all-features
的测试。在本地测试时,建议使用Cross来对上述目标进行测试。
要使用Cross进行测试:cross test --target {target} --all-features
。
了解更多
依赖关系
~0–3MB
~74K SLoC