Module std::path 1.0.0[−][src]
Expand description
跨平台路径操纵。
该模块提供两种类型,即 PathBuf 和 Path (类似于 String 和 str),用于抽象地处理路径。
这些类型分别是围绕 OsString 和 OsStr 的薄包装器,这意味着它们根据本地平台的路径语法直接在字符串上工作。
通过遍历 Path 上 components 方法返回的结构体,可以将路径解析为 Component。Component 大致对应于路径分隔符 (/ 或 \) 之间的子字符串。
您可以使用 PathBuf 上的 push 方法从组件重建等效路径; 请注意,根据 components 方法文档中描述的规范化,路径可能在语法上有所不同。
使用简单
路径操作既包括从切片中解析组件,也包括构建新的拥有的路径。
要解析路径,您可以从 str 切片创建 Path 切片并开始提出问题:
use std::path::Path; use std::ffi::OsStr; let path = Path::new("/tmp/foo/bar.txt"); let parent = path.parent(); assert_eq!(parent, Some(Path::new("/tmp/foo"))); let file_stem = path.file_stem(); assert_eq!(file_stem, Some(OsStr::new("bar"))); let extension = path.extension(); assert_eq!(extension, Some(OsStr::new("txt")));Run
要构建或修改路径,请使用 PathBuf:
use std::path::PathBuf; // 这种方式有效... let mut path = PathBuf::from("c:\\"); path.push("windows"); path.push("system32"); path.set_extension("dll"); // ... 但是如果您不了解所有内容,则最好使用推送。 // 如果您这样做,则这种方法更好: let path: PathBuf = ["c:\\", "windows", "system32.dll"].iter().collect();Run
Structs
| Ancestors |
|
| Components | |
| Display | Helper 结构体,用于使用 |
| Iter | |
| Path | 路径的切片 (类似于 |
| PathBuf | 拥有的可变路径 (类似于 |
| PrefixComponent | 包裹 Windows 路径前缀及其未解析的字符串表示形式的结构体。 |
| StripPrefixError | 如果找不到前缀,则从 |
Enums
| Component | 路径的单个组成部分。 |
| Prefix | Windows 路径前缀,例如 |
Constants
| MAIN_SEPARATOR | 当前平台的路径组件的主要分隔符。 |
Functions
| is_separator | 确定字符是否为当前平台允许的路径分隔符之一。 |