1个稳定版本
1.0.0 | 2024年7月23日 |
---|
在 操作系统 类别中排名 #222
每月下载量 201
在 6 crate 中使用
25KB
353 行
文件路径
处理文本文件路径,包括相对路径和解析。功能
- 变体:
FlexPath
方法考虑路径的FlexPathVariant
绝对路径。支持两种变体:Common
和Windows
。可以通过_native
后缀方法直接推断本地变体。
要求
- Rust标准库 (
std
)。
示例
use hydroperfox_filepaths::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 hydroperfox_filepaths::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.5–4MB
~71K SLoC