1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
/*! # Path Permission 在已有一个确定的路径时,可依此库来获取路径文件的权限。 它为`Path(Buf)`提供了一个名为`PathPermission`的特性(trait),在使用`Path`类型 时,可以此获取其文件权限,是否可读(r)、可写(w)、可执行(x)。 目前只支持 *Unix* 类系统。 ## 示例 ```rust use std::path::Path; extern crate path_permission; use path_permission::*; let path = Path::new("src/lib.rs"); assert_eq!(path.is_readable().unwrap(), true); assert_eq!(path.is_writable().unwrap(), true); assert_eq!(path.is_excutable().unwrap(), false); assert_eq!(path.is_removable().unwrap(), true); let new_path = Path::new("a/b/d/e/f"); assert_eq!(new_path.is_creatable().unwrap(), true); ``` ## 注意 在使用时需注意: * 当返回值为Ok(false)时,意为无查看此路径的权限,即可能此路径不存在(从起始 路径开始,至无访问权限的子级路径,是存在的)。 * 如无必须,不太建议使用相对路径,可使用[path-calculate] (https://crates.io/crates/path-calculate)将路径转换为绝对路径。 ## 后续计划 将完善,使之支持使用位掩码(bitmask)`764`,或`rwx`类型查看与转换。 暂不支持粘滞位的判断处理。 ## 感谢 此项目部分代码,来源自项目[permissions](https://crates.io/crates/permissions)。 */ #[cfg(unix)] pub mod unix; #[cfg(unix)] pub use unix::*; //TODO Windows