1*004e86ffSlogin /// @brief 切分路径字符串,返回最左侧那一级的目录名和剩余的部分。 2*004e86ffSlogin /// 3*004e86ffSlogin /// 举例:对于 /123/456/789/ 本函数返回的第一个值为123, 第二个值为456/789 4*004e86ffSlogin pub fn split_path(path: &str) -> (&str, Option<&str>) { 5*004e86ffSlogin let mut path_split: core::str::SplitN<&str> = path.trim_matches('/').splitn(2, "/"); 6*004e86ffSlogin let comp = path_split.next().unwrap_or(""); 7*004e86ffSlogin let rest_opt = path_split.next(); 8*004e86ffSlogin 9*004e86ffSlogin return (comp, rest_opt); 10*004e86ffSlogin } 11*004e86ffSlogin 12*004e86ffSlogin /// @brief 切分路径字符串,返回最右侧那一级的目录名和剩余的部分。 13*004e86ffSlogin /// 14*004e86ffSlogin /// 举例:对于 /123/456/789/ 本函数返回的第一个值为789, 第二个值为123/456 15*004e86ffSlogin pub fn rsplit_path(path: &str) -> (&str, Option<&str>) { 16*004e86ffSlogin let mut path_split: core::str::RSplitN<&str> = path.trim_matches('/').rsplitn(2, "/"); 17*004e86ffSlogin let comp = path_split.next().unwrap_or(""); 18*004e86ffSlogin let rest_opt = path_split.next(); 19*004e86ffSlogin 20*004e86ffSlogin return (comp, rest_opt); 21*004e86ffSlogin } 22