9 个版本
0.2.1 | 2022 年 8 月 6 日 |
---|---|
0.2.0 | 2022 年 7 月 5 日 |
0.1.5 | 2022 年 6 月 29 日 |
0.1.4 | 2021 年 1 月 15 日 |
0.1.0 | 2018 年 12 月 30 日 |
在 文件系统 类别中排名第 19
每月下载 457,047 次
在 225 个 Crates 中使用 (其中 96 个直接使用)
25KB
200 行
Rust 库,用于将文件路径从/到斜杠路径或从/到斜杠路径进行转换
path-slash
是一个微小的库,用于将文件路径(例如 foo/bar
、foo\bar
或 C:\foo\bar
)转换为斜杠路径(例如 foo/bar
、C:/foo/bar
)。
在类 Unix 操作系统上,路径分隔符默认为斜杠 /
。可能需要转换 Windows 路径。但在 Windows 上,文件路径分隔符 \
需要替换为斜杠 /
(当然,用于转义字符的反斜杠 \
不应替换)。
支持的 Rust 版本是 1.38.0 或更高版本。
本软件包受到了 Go 的 path/filepath.FromSlash
和 path/filepath.ToSlash
的启发。
使用方法
path_slash::PathExt
、path_slash::PathBufExt
和 path_slash::CowExt
特性被定义。通过使用它们,std::path::Path
、std::path::PathBuf
和 std::borrow::Cow<'_, Path>
获得了一些方法和相关函数。
PathExt
Path::to_slash(&self) -> Option<Cow<'_, Path>>
Path::to_slash_lossy(&self) -> Cow<'_, Path>
PathBufExt
PathBuf::from_slash<S: AsRef<str>>(s:S) ->PathBuf
PathBuf::from_slash_lossy<S: AsRef<OsStr>>(s:S) ->PathBuf
PathBuf::from_backslash<S: AsRef<str>>(s:S) ->PathBuf
PathBuf::from_backslash_lossy<S: AsRef<OsStr>>(s:S) ->PathBuf
PathBuf::to_slash(&self) -> Option<Cow<'_, Path>>
PathBuf::to_slash_lossy(&self) -> Cow<'_, Path>
CowExt
Cow::<Path>::from_slash(s: &str) -> Self
Cow::<Path>::from_slash_lossy(s: &OsStr) -> Self
Cow::<Path>::from_backslash(s: &str) -> Self
Cow::<Path>::from_backslash_lossy(s: &OsStr) -> Self
fn example_path_ext() {
// Trait for extending std::path::Path
use path_slash::PathExt as _;
let p = Path::from_slash("foo/bar/piyo.txt");
// On Windows
assert_eq!(p, Path::new(r"foo\bar\piyo.txt"));
// Convert to slash path
assert_eq!(p.to_slash().unwrap(), "foo/bar/piyo.txt");
assert_eq!(p.to_slash_lossy(), "foo/bar/piyo.txt");
}
fn example_pathbuf_ext() {
// Trait for extending std::path::PathBuf
use path_slash::PathBufExt as _;
// On Windows
let p = PathBuf::from_slash("foo/bar/piyo.txt");
assert_eq!(p, PathBuf::from(r"foo\bar\piyo.txt"));
// Convert to slash path
assert_eq!(p.to_slash().unwrap(), "foo/bar/piyo.txt");
assert_eq!(p.to_slash_lossy(), "foo/bar/piyo.txt");
}
fn example_cow_ext() {
// Trait for extending std::borrow::Cow<'_, Path>
use path_slash::CowExt as _;
let p = Cow::from_slash("foo/bar/piyo.txt");
// On Windows
assert_eq!(p, Cow::Owned(PathBuf::from(r"foo\bar\piyo.txt")));
// On non-Windows
assert_eq!(p, Cow::Borrowed(Path::new("foo/bar/piyo.txt")));
// Convert to slash path
assert_eq!(p.to_slash().unwrap(), "foo/bar/piyo.txt");
assert_eq!(p.to_slash_lossy(), "foo/bar/piyo.txt");
}
请阅读文档以获取更多详细信息。
安装
将path-slash
添加到依赖项
[dependencies]
path-slash = "0.x"