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


Rust Path.strip_prefix用法及代碼示例


本文簡要介紹rust語言中 std::path::Path.strip_prefix 的用法。

用法

pub fn strip_prefix<P>(&self, base: P) -> Result<&Path, StripPrefixError> where    P: AsRef<Path>,

返回一個路徑,當加入 base 時,會產生 self

錯誤

如果 base 不是 self 的前綴(即 starts_with 返回 false ),則返回 Err

例子

use std::path::{Path, PathBuf};

let path = Path::new("/test/haha/foo.txt");

assert_eq!(path.strip_prefix("/"), Ok(Path::new("test/haha/foo.txt")));
assert_eq!(path.strip_prefix("/test"), Ok(Path::new("haha/foo.txt")));
assert_eq!(path.strip_prefix("/test/"), Ok(Path::new("haha/foo.txt")));
assert_eq!(path.strip_prefix("/test/haha/foo.txt"), Ok(Path::new("")));
assert_eq!(path.strip_prefix("/test/haha/foo.txt/"), Ok(Path::new("")));

assert!(path.strip_prefix("test").is_err());
assert!(path.strip_prefix("/haha").is_err());

let prefix = PathBuf::from("/test/");
assert_eq!(path.strip_prefix(prefix), Ok(Path::new("haha/foo.txt")));

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::path::Path.strip_prefix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。