本文簡要介紹rust語言中 Enum std::path::Prefix
的用法。
用法
pub enum Prefix<'a> {
Verbatim(&'a OsStr),
VerbatimUNC(&'a OsStr, &'a OsStr),
VerbatimDisk(u8),
DeviceNS(&'a OsStr),
UNC(&'a OsStr, &'a OsStr),
Disk(u8),
}
Windows 路徑前綴,例如 C:
或 \\server\share
。
Windows 使用各種路徑前綴樣式,包括對驅動器卷的引用(例如C:
)、網絡共享文件夾(如\\server\share
), 和別的。此外,一些路徑前綴是“verbatim”(即前綴為\\?\
), 在這種情況下/
是不是被視為分隔符並且本質上不執行標準化。
例子
use std::path::{Component, Path, Prefix};
use std::path::Prefix::*;
use std::ffi::OsStr;
fn get_path_prefix(s: &str) -> Prefix {
let path = Path::new(s);
match path.components().next().unwrap() {
Component::Prefix(prefix_component) => prefix_component.kind(),
_ => panic!(),
}
}
assert_eq!(Verbatim(OsStr::new("pictures")),
get_path_prefix(r"\\?\pictures\kittens"));
assert_eq!(VerbatimUNC(OsStr::new("server"), OsStr::new("share")),
get_path_prefix(r"\\?\UNC\server\share"));
assert_eq!(VerbatimDisk(b'C'), get_path_prefix(r"\\?\c:\"));
assert_eq!(DeviceNS(OsStr::new("BrainInterface")),
get_path_prefix(r"\\.\BrainInterface"));
assert_eq!(UNC(OsStr::new("server"), OsStr::new("share")),
get_path_prefix(r"\\server\share"));
assert_eq!(Disk(b'C'), get_path_prefix(r"C:\Users\Rust\Pictures\Ferris"));
變體
Verbatim(&'a OsStr)
元組字段
0: &'a OsStr
逐字前綴,例如 \\?\cat_pics
。
逐字前綴由緊跟給定組件的\\?\
組成。
VerbatimUNC(&'a OsStr, &'a OsStr)
使用 Windows' 的逐字前綴U尼福爾N阿明C公約,例如,\\?\UNC\server\share
.
Verbatim UNC 前綴由\\?\UNC\
組成,後跟服務器的主機名和共享名。
VerbatimDisk(u8)
元組字段
0: u8
逐字磁盤前綴,例如 \\?\C:
。
逐字磁盤前綴由 \\?\
緊跟驅動器號和 :
組成。
DeviceNS(&'a OsStr)
元組字段
0: &'a OsStr
設備命名空間前綴,例如 \\.\COM42
。
設備命名空間前綴由\\.\
緊跟設備名稱組成。
UNC(&'a OsStr, &'a OsStr)
使用 Windows 的前綴U尼福爾N阿明C公約,例如\\server\share
.
UNC 前綴由服務器的主機名和共享名組成。
Disk(u8)
元組字段
0: u8
給定磁盤驅動器的前綴C:
。
相關用法
- Rust PrefixComponent用法及代碼示例
- Rust Prefix.is_verbatim用法及代碼示例
- Rust PanicInfo.payload用法及代碼示例
- Rust Path.components用法及代碼示例
- Rust PathBuf.with_capacity用法及代碼示例
- Rust Poll.map用法及代碼示例
- Rust Peekable.peek用法及代碼示例
- Rust Path.is_symlink用法及代碼示例
- Rust Poll.map_ok用法及代碼示例
- Rust Pointer用法及代碼示例
- Rust Path.canonicalize用法及代碼示例
- Rust PartialOrd.partial_cmp用法及代碼示例
- Rust Path.is_relative用法及代碼示例
- Rust Path.file_stem用法及代碼示例
- Rust PermissionsExt.set_mode用法及代碼示例
- Rust Path.to_string_lossy用法及代碼示例
- Rust Path.display用法及代碼示例
- Rust PathBuf.into_os_string用法及代碼示例
- Rust Peekable.next_if用法及代碼示例
- Rust PanicInfo用法及代碼示例
- Rust PathBuf.pop用法及代碼示例
- Rust Path.ancestors用法及代碼示例
- Rust Path用法及代碼示例
- Rust Path.is_dir用法及代碼示例
- Rust Path.strip_prefix用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Enum std::path::Prefix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。