4个版本 (1个稳定版本)
1.0.0 | 2023年10月22日 |
---|---|
0.1.2 | 2023年8月5日 |
0.1.1 | 2023年8月5日 |
0.1.0 | 2023年8月5日 |
#5 in #textual
每月73次 下载
用于 7 crates
24KB
353 行
文件路径
处理文本形式的文件路径,包括相对路径和解析。功能
- 变体:
FlexPath
方法根据路径的FlexPathVariant
考虑绝对路径。支持两种变体:Common
和Windows
。可以通过带有_native
后缀的方法直接推导出本地变体。
要求
- Rust标准库 (
std
)。
示例
use file_paths::FlexPath;
assert_eq!("a", FlexPath::new_common("a/b").resolve("..").to_string());
assert_eq!("a", FlexPath::new_common("a/b/..").to_string());
assert_eq!("a/b/c/d/e", FlexPath::from_n_common(["a/b", "c/d", "e/f", ".."]).to_string());
assert_eq!("../../c/d", FlexPath::new_common("/a/b").relative("/c/d"))
lib.rs
:
仅通过文本处理文件路径。
在Windows操作系统中,绝对路径可能以驱动器字母和冒号开头,或者以UNC路径前缀 (\\
) 开头。因此,这个crate提供了一个基于变体 ([FlexPathVariant]) 的 FlexPath
,您不需要总是指定它。这个变体指示是否解释Windows绝对路径。
目前有两个 FlexPathVariant 变体
- 通用
- Windows
常量 FlexPathVariant::NATIVE
是基于目标平台的这些变体之一。对于Windows操作系统,它始终是 Windows。对于其他平台,它始终是 通用。
示例
use file_paths::FlexPath;
assert_eq!("a", FlexPath::new_common("a/b").resolve("..").to_string());
assert_eq!("a", FlexPath::new_common("a/b/..").to_string());
assert_eq!("a/b/c/d/e", FlexPath::from_n_common(["a/b", "c/d", "e/f", ".."]).to_string());
assert_eq!("../../c/d", FlexPath::new_common("/a/b").relative("/c/d"));
依赖项
~2.4–4MB
~71K SLoC