7 простых способов создать папку в Rust: руководство для начинающих

Метод 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. Выберите тот, который лучше всего соответствует вашим потребностям, и начните организовывать свои файлы как профессионал!