當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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