本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。