
Разбира се, започваме!
Rust е многопарадигмен системен програмен език, фокусиран върху производителността и безопасността, особено безопасната едновременност. Дизайнът му го прави полезен за много неща, но е изключително подходящ за системни задачи, обикновено написани на C или C++. Днес ще обсъждам метода за създаване на папка в Rust.
Създаването на папка е сравнително проста задача в Rust, която може да бъде постигната с помощта на модула на файловата система на стандартната библиотека, по-специално функцията `create_dir_all`.
**Функция:** std::fs::create_dir_all
Тази функция рекурсивно създава директория и всички нейни родителски компоненти, ако те липсват.
използвайте std::fs;
fn main() -> std::io::Result<()> {
fs::create_dir_all(“/някои/път”)?;
Добре(())
}
Нека анализираме кода стъпка по стъпка.
Първият ред `use std::fs;` импортира модула на файловата система от стандартната библиотека на Rust. Този модул съдържа няколко функции за работа с файлови системи, включително създаване и изтриване на директории, четене и писане на файлове и четене на метаданни.
Функцията `main` се дефинира с `fn main() -> std::io::Result<()>`. Това е типична входна точка за програма Rust. Върнатият тип тук, `std::io::Result<()>`, е enum на Rust, който представлява или успех (`Ok`), или неуспех (`Err`).
Следващият ред fs::create_dir_all(“/some/path”)?; е мястото, където се случва действителното създаване на директория. Функцията `create_dir_all` взема път към файл и се опитва да го създаде. Той също така ще създаде всички липсващи родителски директории. Операторът `?` разпространява всички грешки, възникнали по време на създаването на директория, карайки функцията да се върне по-рано със стойността на грешката.
Накрая се връща Ok(()), за да покаже липса на грешки по време на изпълнение.
Модулът std::io
Модулът `std::io` съдържа редица общи неща, от които ще се нуждаете, когато правите въвеждане и извеждане. Определено трябва да се знае за всеки, който сериозно се занимава с Rust. Това включва `std::io::Result`, който използвахме в основната функция, което всъщност е псевдоним на тип за `Result`
Обичайно е да се използва `std::io::Result` във функции, които могат да доведат до I/O грешка. Това е ефективен начин за справяне с грешки в Rust, позволяващ на разработчика да извежда грешките там, където е най-подходящо да се справи с тях, поддържайки по-чист и по-четлив код.
Модулът std::fs
Модулът `std::fs` осигурява API за взаимодействие с файловата система на по-ниско ниво. Този модул представлява файлове и директории във файловата система, които ви позволяват да навигирате във файловото дърво, да четете и записвате файлове и да инспектирате техните метаданни.
Функцията `fs::create_dir_all`, която беше използвана за създаване на директорията, е част от този модул. Това е фантастична функция, която не само създава указаната от вас директория, но също така прави допълнителна миля, за да създаде всички родителски директории, които все още не са там. Той е ефективен, надежден и идеалният инструмент за настройка на файлови структури.
Не забравяйте, че Стандартната библиотека на Rust е пълна с полезни модули и функции, които си струва да проучите, за да направите вашето програмиране в Rust възможно най-ефективно.