1个稳定版本

1.0.0 2024年7月23日

操作系统 类别中排名 #222

Download history 155/week @ 2024-07-22 23/week @ 2024-07-29 23/week @ 2024-08-12

每月下载量 201
6 crate 中使用

ISC 许可证

25KB
353

文件路径

处理文本文件路径,包括相对路径和解析。功能

  • 变体: FlexPath 方法考虑路径的 FlexPathVariant 绝对路径。支持两种变体:CommonWindows。可以通过 _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