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

Тип DirEntry

Тип DirEntry представляет собой запись об элементе директории, возвращаемую итератором метода read_dir. Каждая такая запись содержит информацию о файле или поддиректории: путь, имя, тип файла и метаданные. Тип DirEntry не создаётся напрямую, а получается в результате обхода содержимого директории.

Синтаксис

use std::fs::DirEntry; // Получение через итератор read_dir for entry in std::fs::read_dir(path)? { let entry: DirEntry = entry?; }

Методы

Тип DirEntry предоставляет следующие методы:

entry.path() // возвращает PathBuf entry.file_name() // возвращает OsString entry.file_type() // возвращает io::Result<FileType> entry.metadata() // возвращает io::Result<Metadata>

Пример

Давайте прочитаем содержимое текущей директории и выведем путь каждой записи:

use std::fs; fn main() { let entries = fs::read_dir(".").unwrap(); for entry in entries { let entry = entry.unwrap(); println!("{:?}", entry.path()); } }

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

"./src" "./Cargo.toml" "./target"

Пример

Давайте выведем имя и тип каждой записи в текущей директории:

use std::fs; fn main() { let entries = fs::read_dir(".").unwrap(); for entry in entries { let entry = entry.unwrap(); let name = entry.file_name(); let file_type = entry.file_type().unwrap(); if file_type.is_dir() { println!("{:?} - директория", name); } else { println!("{:?} - файл", name); } } }

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

"src" - директория "Cargo.toml" - файл "target" - директория

Пример

Давайте получим метаданные каждой записи в текущей директории и выведем их размер:

use std::fs; fn main() { let entries = fs::read_dir(".").unwrap(); for entry in entries { let entry = entry.unwrap(); let metadata = entry.metadata().unwrap(); let name = entry.file_name(); println!("{:?}: {} байт", name, metadata.len()); } }

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

"src": 4096 байт "Cargo.toml": 245 байт "target": 4096 байт

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

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