Разбор пути в Rust
Путь разбирают на имя и расширение. Для
этого строку превращают в ссылку на Path
и вызывают методы, которые отдают необязательные
куски текста. Так отделяют последний сегмент
от суффикса после точки.
Посмотрим на путь с папкой и файлом:
use std::path::Path;
fn main() {
let path = Path::new("docs/report.txt");
match path.file_name() {
Some(name) => println!("{}", name.to_string_lossy()),
None => println!("no name"),
}
match path.extension() {
Some(ext) => println!("{}", ext.to_string_lossy()),
None => println!("no ext"),
}
}
На экране "report.txt" и "txt".
Для файла в корне достаточно одного имени:
use std::path::Path;
fn main() {
let path = Path::new("note.txt");
match path.file_name() {
Some(name) => println!("{}", name.to_string_lossy()),
None => println!("no name"),
}
}
Дан путь:
let path = "a/b.txt";
Выведите имя файла и расширение через
Path.
Дан путь:
let path = "data";
Скажите, что вернет запрос расширения для такой строки.
Напишите функцию, которая принимает срез пути и печатает имя, если оно есть.