Метод 1: использование модуля std::fs
use std::fs;
fn main() {
let folder_name = "my_folder";
fs::create_dir(folder_name).expect("Failed to create folder");
println!("Folder created successfully!");
}
Этот метод использует стандартный модуль fsв Rust для создания папки. Функция create_dirсоздает новый каталог с указанным именем. Если создать папку не удастся, произойдет паника и появится сообщение об ошибке.
Метод 2: использование структуры fs::DirBuilder
use std::fs;
fn main() {
let folder_name = "my_folder";
let dir_builder = fs::DirBuilder::new();
dir_builder.create(folder_name).expect("Failed to create folder");
println!("Folder created successfully!");
}
Здесь мы используем структуру DirBuilderиз модуля fs. Он обеспечивает больший контроль над созданием каталогов, позволяя устанавливать разрешения и другие атрибуты.
Метод 3: использование структуры std::process::Command
use std::process::Command;
fn main() {
let folder_name = "my_folder";
Command::new("mkdir")
.arg(folder_name)
.status()
.expect("Failed to create folder");
println!("Folder created successfully!");
}
Этот метод использует структуру Commandиз модуля std::process. Он запускает инструмент командной строки mkdirдля создания папки. Обратите внимание, что этот метод зависит от наличия в системе инструмента mkdir.
Метод 4: использование функции std::fs::create_dir_all
use std::fs;
fn main() {
let folder_name = "parent_folder/sub_folder";
fs::create_dir_all(folder_name).expect("Failed to create folder");
println!("Folder created successfully!");
}
Функция create_dir_allсоздает каталог и все его родительские каталоги, если они не существуют. Это полезно, если вы хотите создавать вложенные папки.
Метод 5: использование функций std::path::Pathи std::fs::create_dir
use std::path::Path;
use std::fs;
fn main() {
let folder_name = "my_folder";
let path = Path::new(folder_name);
fs::create_dir(path).expect("Failed to create folder");
println!("Folder created successfully!");
}
Этот метод демонстрирует создание папки с использованием структуры Pathиз модуля std::path. Он обеспечивает независимый от платформы способ представления путей к файлам.
Метод 6: использование функции std::fs::create_dirс буферами пути
use std::path::PathBuf;
use std::fs;
fn main() {
let folder_name = "my_folder";
let mut path = PathBuf::new();
path.push(folder_name);
fs::create_dir(&path).expect("Failed to create folder");
println!("Folder created successfully!");
}
Здесь мы используем структуру PathBufвместо Pathдля удобного добавления компонентов пути. Он обеспечивает большую гибкость при работе со сложной структурой папок.
Метод 7. Использование функции std::fs::metadataдля проверки и создания папки
use std::fs;
fn main() {
let folder_name = "my_folder";
if let Err(_) = fs::metadata(folder_name) {
fs::create_dir(folder_name).expect("Failed to create folder");
}
println!("Folder created successfully!");
}
Этот метод сначала проверяет, существует ли папка, с помощью функции metadata. Если нет, папка создается с помощью create_dir. Это удобный способ убедиться, что вы случайно не перезапишете существующую папку.
И вот оно! Семь различных способов создания папки в Rust. Выберите тот, который лучше всего соответствует вашим потребностям, и начните организовывать свои файлы как профессионал!