本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。