РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
894 of 1245 menu

Тип FileType

Тип FileType представляет собой перечисление (enum), которое описывает тип файла в файловой системе. Он возвращается методами file_type у DirEntry и Metadata, а также используется для определения того, является ли путь файлом, директорией или символической ссылкой. Тип FileType не хранит имя файла или его размер - только его категорию.

Основные методы типа FileType позволяют проверить категорию файла: is_file возвращает true, если это обычный файл, is_dir - если это директория, is_symlink - если это символическая ссылка.

Синтаксис

std::fs::FileType

Тип FileType находится в модуле std::fs. Получить его значение можно через методы file_type у DirEntry или Metadata.

Пример

Давайте создадим директорию и файл, а затем проверим их типы с помощью метода file_type:

use std::fs; use std::path::Path; fn main() { let dir_path = Path::new("test_dir"); let file_path = Path::new("test_dir/test_file.txt"); fs::create_dir_all(dir_path).unwrap(); fs::write(file_path, "abcde").unwrap(); let dir_meta = fs::metadata(dir_path).unwrap(); let file_meta = fs::metadata(file_path).unwrap(); let dir_type = dir_meta.file_type(); let file_type = file_meta.file_type(); println!("is_dir: {}", dir_type.is_dir()); println!("is_file: {}", dir_type.is_file()); println!("is_file: {}", file_type.is_file()); println!("is_dir: {}", file_type.is_dir()); fs::remove_dir_all(dir_path).unwrap(); }

Результат выполнения кода:

is_dir: true is_file: false is_file: true is_dir: false

Пример

Давайте проверим, является ли путь символической ссылкой, используя метод is_symlink:

use std::fs; use std::path::Path; fn main() { let dir_path = Path::new("test_dir"); let file_path = Path::new("test_dir/test_file.txt"); fs::create_dir_all(dir_path).unwrap(); fs::write(file_path, "12345").unwrap(); let file_meta = fs::metadata(file_path).unwrap(); let file_type = file_meta.file_type(); println!("is_symlink: {}", file_type.is_symlink()); println!("is_file: {}", file_type.is_file()); fs::remove_dir_all(dir_path).unwrap(); }

Результат выполнения кода:

is_symlink: false is_file: true

Смотрите также

  • метод file_type,
    который возвращает тип файла из метаданных
  • метод file_type,
    который возвращает тип файла у элемента директории
  • метод is_file,
    который проверяет, является ли путь обычным файлом
  • метод is_dir,
    который проверяет, является ли путь директорией
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить