本文简要介绍rust语言中 std::path::Path.components
的用法。
用法
pub fn components(&self) -> Components<'_>
在路径的 Component
上生成一个迭代器。
解析路径时,有少量的归一化:
-
重复的分隔符被忽略,因此
a/b
和a//b
都具有a
和b
作为组件。 -
.
的出现被规范化,除非它们位于路径的开头。例如,a/./b
、a/b/
、a/b/.
和a/b
都具有a
和b
作为组件,但./a/b
以附加的CurDir
组件开头。 -
尾部斜线被规范化掉,
/a/b
和/a/b/
是等价的。
请注意,不会发生其他标准化;特别是,a/c
和 a/b/../c
是不同的,以说明 b
是符号链接的可能性(因此其父级不是 a
)。
例子
use std::path::{Path, Component};
use std::ffi::OsStr;
let mut components = Path::new("/tmp/foo.txt").components();
assert_eq!(components.next(), Some(Component::RootDir));
assert_eq!(components.next(), Some(Component::Normal(OsStr::new("tmp"))));
assert_eq!(components.next(), Some(Component::Normal(OsStr::new("foo.txt"))));
assert_eq!(components.next(), None)
相关用法
- Rust Path.canonicalize用法及代码示例
- Rust Path.is_symlink用法及代码示例
- Rust Path.is_relative用法及代码示例
- Rust Path.file_stem用法及代码示例
- Rust Path.to_string_lossy用法及代码示例
- Rust Path.display用法及代码示例
- Rust Path.ancestors用法及代码示例
- Rust Path.is_dir用法及代码示例
- Rust Path.strip_prefix用法及代码示例
- Rust Path.file_prefix用法及代码示例
- Rust Path.exists用法及代码示例
- Rust Path.read_link用法及代码示例
- Rust Path.parent用法及代码示例
- Rust Path.is_absolute用法及代码示例
- Rust Path.new用法及代码示例
- Rust Path.file_name用法及代码示例
- Rust Path.join用法及代码示例
- Rust Path.to_path_buf用法及代码示例
- Rust Path.is_file用法及代码示例
- Rust Path.try_exists用法及代码示例
- Rust Path.extension用法及代码示例
- Rust Path.has_root用法及代码示例
- Rust Path.with_file_name用法及代码示例
- Rust Path.symlink_metadata用法及代码示例
- Rust Path.metadata用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::path::Path.components。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。