3 个版本 (稳定版)
使用旧的 Rust 2015
| 1.0.1 | 2023年2月24日 |
|---|---|
| 0.1.0 | 2018年11月6日 |
#30 在 文件系统 分类中
每月下载量 413,651
在 473 个 Crates 中使用 (直接使用 119)
10KB
145 行
path-clean
安装
cargo add path-clean
使用
use std::path::PathBuf;
use path_clean::{clean, PathClean};
assert_eq!(clean("hello/world/.."), PathBuf::from("hello"));
assert_eq!(
PathBuf::from("/test/../path/").clean(),
PathBuf::from("/path")
);
关于
path-clean 是 Plan 9 C 库中的 cleanname 程序的 Rust 版本,类似于 Go 标准库中的 path.Clean。它的工作原理如下
- 将多个斜杠减少到单个斜杠。
- 消除路径名称元素
.(当前目录)。 - 消除路径名称元素
..(父目录)以及在其之前的不带.和..的元素。 - 消除以
..开头的根路径元素,即将路径开头的/..替换为/。 - 保持非根路径开头的
..元素不变。
如果此过程的结果是空字符串,则返回表示当前目录的字符串 "."。
它以词法方式执行此转换,而不接触文件系统。因此,它不会执行任何符号链接解析或绝对路径解析。更多信息请参阅 "正确处理点号和点号"。
为了方便,公开了 PathClean trait,并为 std::path::PathBuf 实现。