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
实现。