Získání aktuálního adresáře ve vašem programu Rust je běžnou činností, zejména při vytváření aplikací příkazového řádku nebo při práci se souborovými I/O operacemi. Je to základní koncept při práci s cestami a souborovými systémy v Rustu. Než se ponoříte do řešení, je důležité pochopit, co znamená aktuální adresář nebo pracovní adresář. Představuje adresář, kde se program aktuálně spouští.
použít std::env;
fn main() {
// Získání aktuálního adresáře
nech aktualni_adresar = env::aktualni_adresar().unwrap();
println!(“Aktuální adresář je {}”, aktuální_adresář.display());
}
Výše uvedený fragment kódu vytiskne aktuální adresář vašeho programu Rust. Používáme funkci `env::current_dir()` ze standardní knihovny Rust, která vrací typ `Result`. Tento výsledek může být buď `Ok` obsahující aktuální cestu k adresáři, nebo `Err`, pokud dojde k potížím s jeho načtením.
V Rustu je „Výsledek“ výčtový typ nebo „výčet“, který může mít dvě hodnoty. Metoda `.unwrap()` načte hodnotu `Ok` a v případě `Err` program s panikou zavře.
Porozumění Rustově funkci env::current_dir().
Jedno `env::current_dir()` funkce pochází z modulu Rust `std::env`. Modul `std::env` v Rustu poskytuje funkce pro načítání a kontrolu různých aspektů prostředí běžícího programu. To zahrnuje podrobnosti, jako je načtení argumentů předávaných programu, kontrola proměnných prostředí, získání aktuálního adresáře a dokonce i jeho změna.
Funkce `current_dir()` konkrétně vrací instanci `PathBuf` zabalenou do `Výsledku`. Struktura `PathBuf` představuje cestu v souborovém systému. Tato struktura vlastní data cesty a je dodávána s různými metodami, které umožňují snadné manipulace, jako je spojování cest, načítání nadřazeného adresáře a rozdělení cesty na komponenty.
Role funkce unwrap().
V Rustu mnoho operací vrací typ `Result`. Toto je způsob, jak tyto operace zvládnout možnost selhání, protože Rust nemá výjimky. Místo toho funkce vrátí buď „Ok(T)“, představující úspěšnou operaci s hodnotou, nebo „Err(E)“, znamenající neúspěšnou operaci s chybou.
Jedno `rozbalit()` funkce funguje jako zkratka. Je to metoda definovaná na typu `Result`. Když je vyvolána varianta Ok, přesune z ní hodnotu. Pokud však zavoláte `unwrap()` na variantě Err, program zpanikaří a skončí.
Jednání s PathBuf
"PathBuf". struct v Rustu je složitější verze standardního typu `String`, ale je speciálně přizpůsobena pro cesty k souborům. `PathBuf` může být měnitelný a ukládat neomezený počet komponent cesty. Jeho primární použití je vytvářet a upravovat cestu k souborovému systému.
Lze jej změnit pomocí jiných `PathBuf`, `String`, `&str` a dokonce i jiných `Cest. Metody jako `push()`, `pop()`, `set_file_name()`, `set_extension()` vám umožňují manipulovat s daty cesty kontrolovanějším a čitelnějším způsobem, což je funkce, kterou nabízí jen velmi málo uživatelů. jazyky ve standardní knihovně.
Díky pochopení funkcí `env::current_dir()`, `unwrap()` a `PathBuf` můžeme s jistotou pracovat s pracovním adresářem v našich aplikacích Rust. Pochopení těchto základních funkcí také pomůže, když potřebujete zpracovat cesty k souborům a adresářům při použití programovacího jazyka Rust.