Module std::path1.0.0[][src]

Expand description

跨平台路径操纵。

该模块提供两种类型,即 PathBufPath (类似于 Stringstr),用于抽象地处理路径。 这些类型分别是围绕 OsStringOsStr 的薄包装器,这意味着它们根据本地平台的路径语法直接在字符串上工作。

通过遍历 Pathcomponents 方法返回的结构体,可以将路径解析为 ComponentComponent 大致对应于路径分隔符 (/\) 之间的子字符串。 您可以使用 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

Path 及其祖先上的迭代器。

Components

PathComponent 上的迭代器。

Display

Helper 结构体,用于使用 format!{} 安全地打印路径。

Iter

PathComponent 上的迭代器,作为 OsStr 切片。

Path

路径的切片 (类似于 str)。

PathBuf

拥有的可变路径 (类似于 String)。

PrefixComponent

包裹 Windows 路径前缀及其未解析的字符串表示形式的结构体。

StripPrefixError

如果找不到前缀,则从 Path::strip_prefix 返回错误。

Enums

Component

路径的单个组成部分。

Prefix

Windows 路径前缀,例如 C:\\server\share

Constants

MAIN_SEPARATOR

当前平台的路径组件的主要分隔符。

Functions

is_separator

确定字符是否为当前平台允许的路径分隔符之一。