Rust PathBuf Examples
These are examples of the functions and features available
in Rusts PathBuf
This is a work in progress making examples from
>
this page
>
https
:
//doc.rust
-
lang.org/std/path/struct.PathBuf.html#method.display
>
rust
use std::path::PathBuf;
fn main() {
let mut path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
path.pop();
dbg! {path};
}
results full
NOTE
:
the pop just returns true not the item
that was popped as far as I can tell
rust
fn main() {
let mut path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
path.set_extension("neo");
dbg! {path};
}
results full
rust
fn main() {
let mut path = PathBuf::from("/Users/alan/Desktop/bravo.v2.txt");
path.set_file_name("bravo.v2.txt");
dbg! {path};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let ancestors = path.ancestors();
ancestors.for_each(|x| println!("{}", x.display()));
}
results full
rust
fn main() {
let mut path = PathBuf::from("/Users/alan/Desktop/subdir/../alfa.v1.txt");
path = path.canonicalize().unwrap();
dbg! {path};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let components = path.components();
dbg! {components};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let display_name = path.display();
dbg! {display_name};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let extension = path.extension().unwrap();
dbg! {extension};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let file_name = path.file_name().unwrap();
dbg! {file_name};
}
results full
File Stem
(There's a
[TODO: Code shorthand span ]
that's in nightly as well that will
do a similar thing as thise but return
[TODO: Code shorthand span ]
instead)
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let file_stem = path.file_stem().unwrap();
dbg! {file_stem};
}
results full
Join Paths
This creates a new path from the joined parts
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop");
let joined_path = path.join("alfa.v1.txt");
dbg! {joined_path};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let metadata = path.metadata().unwrap();
dbg! {metadata};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let parent = path.parent().unwrap();
dbg! {parent};
}
results full
rust
fn main() {
let path = PathBuf::from("/Users/alan/Desktop/alfa.v1.txt");
let prefix_removed = path.strip_prefix("/Users/alan/").unwrap();
dbg! {prefix_removed};
}
results full
A basic rundown of Rust path features