3 个版本
0.1.2 | 2021年2月24日 |
---|---|
0.1.1 | 2021年2月24日 |
0.1.0 | 2021年2月24日 |
#6 in #target-file
3,812 每月下载量
在 12 个 Crates (9 直接) 中使用
68KB
1.5K SLoC
解码 Unix 文件模式位,更改它们并将它们应用于文件。
表示了 sys/stat.h
中描述的所有文件类型、特殊和保护位。
使用位掩码,Mode
对象可以部分表示文件模式。只有修改过的位会在目标文件中更改。针对目录(搜索)的特定修改也会正确处理。
use std::path::Path;
use file_mode::{ModePath, User};
let mode = Path::new("LICENSE").mode().unwrap();
// query bits
assert!(mode.file_type().unwrap().is_regular_file());
assert!(mode.user_protection(User::Owner).is_read_set());
assert!(mode.user_protection(User::Group).is_write_set());
assert!(!mode.user_protection(User::Other).is_execute_set());
// print as string
println!("{}", mode); // -rw-rw-r--
assert_eq!(&mode.to_string(), "-rw-rw-r--");
// apply chmod string
Path::new("LICENSE").set_mode("u+r,g+u").unwrap();
有关更多示例,请参阅docs.rs上的模块级别文档。
依赖项
~185KB