当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Prefix用法及代码示例


本文简要介绍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)

元组字段

0: &'a OsStr
1: &'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)

元组字段

0: &'a OsStr
1: &'a OsStr

使用 Windows 的前缀U尼福尔N阿明C公约,例如\\server\share.

UNC 前缀由服务器的主机名和共享名组成。

Disk(u8)

元组字段

0: u8

给定磁盘驱动器的前缀C:

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Enum std::path::Prefix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。