#windows-file #properties #system #attributes #decoding #element

keypropdecode

用于解码 Windows 文件系统元素属性的库

10 个稳定版本

2.0.3 2024年1月18日
2.0.1 2024年1月17日
1.1.8 2024年1月15日
0.1.0 2024年1月2日
0.0.0 2023年12月20日

#363 in 文件系统

MIT 许可证

47KB
1K SLoC

keypropdecode

一个用于解码 Windows 文件系统元素属性的库。
由于 Windows 将这些属性存储为数字,并且每个属性都存储在该数字的确定位中,解码它可能会导致代码膨胀。
这个库旨在解决这个问题。您可以用不同的目的使用这个 crate

  1. 您可以使用实现了 From 特质的 u32,并返回一个带有对应属性的 Props 实例。
  2. 您可以使用 PathBuf 或其引用,并使用 TryFrom 特质,您不需要提取相应的属性。您也可以提供一个有效的 &str
  3. 当属性设置正确时,您可以得到您设置的属性的对应 u32。该库将确保您不会设置无效状态
  4. 结构体的 Display 实现返回一个与 PowerShell 中使用 GetChild-Item 打印的相同的 String,这是最常用的。

有关所有文件系统元素属性的详细信息,请参阅 Microsoft 文件属性常数文档
该库的实现使用枚举来确保无效状态无法表示。
强烈建议:如果您不知道属性的作用,不要更改它

示例

use keypropdecode::Props;
let mut props = Props::default();
props.change_element_type(ArcDir::Archive(ArchiveProps::default()));
assert_eq!(Props::try_from(r"hidden_file_example.txt").unwrap(), props);

无运行时依赖