Структура DirEntry
pub struct DirEntry { /* private fields */ }
fs.Записи, возвращаемые потоком ReadDir.
Специализированная версия std::fs::DirEntry, предназначенная для использования в среде выполнения Tokio.
Экземпляр DirEntry представляет запись в каталоге файловой системы. Сведения о полном пути и, возможно, другие метаданные каждой записи можно получить с помощью методов и платформенных трейтов расширения.
Реализации
impl DirEntry
pub fn ino(&self) -> u64
Возвращает поле d_ino содержащейся структуры dirent.
Примеры
use tokio::fs;
let mut entries = fs::read_dir(".").await?;
while let Some(entry) = entries.next_entry().await? {
// Here, `entry` is a `DirEntry`.
println!("{:?}: {}", entry.file_name(), entry.ino());
}impl DirEntry
pub fn path(&self) -> PathBuf
Возвращает полный путь к файлу, который представляет эта запись.
Полный путь формируется добавлением имени файла этой записи к исходному пути read_dir.
Примеры
use tokio::fs;
let mut entries = fs::read_dir(".").await?;
while let Some(entry) = entries.next_entry().await? {
println!("{:?}", entry.path());
}Вывод будет выглядеть примерно так:
"./whatever.txt"
"./foo.html"
"./hello_world.rs"Точный текст, конечно, зависит от того, какие файлы находятся в ..
pub fn file_name(&self) -> OsString
Возвращает имя файла этой записи каталога без предшествующих компонентов пути.
Примеры
use tokio::fs;
let mut entries = fs::read_dir(".").await?;
while let Some(entry) = entries.next_entry().await? {
println!("{:?}", entry.file_name());
}pub async fn metadata(&self) -> Result<Metadata>
Возвращает метаданные файла, на который указывает эта запись.
Если эта запись указывает на символическую ссылку, функция не будет переходить по ней.
Поведение зависит от платформы
В Windows вызов этой функции выполняется быстро (дополнительные системные вызовы не нужны), а на платформах Unix функция эквивалентна вызову symlink_metadata для этого пути.
Примеры
use tokio::fs;
let mut entries = fs::read_dir(".").await?;
while let Some(entry) = entries.next_entry().await? {
if let Ok(metadata) = entry.metadata().await {
// Now let's show our entry's permissions!
println!("{:?}: {:?}", entry.path(), metadata.permissions());
} else {
println!("Couldn't get file type for {:?}", entry.path());
}
}pub async fn file_type(&self) -> Result<FileType>
Возвращает тип файла, на который указывает эта запись.
Если эта запись указывает на символическую ссылку, функция не будет переходить по ней.
Поведение зависит от платформы
В Windows и большинстве платформ Unix вызов этой функции не требует дополнительных затрат (дополнительные системные вызовы не нужны), но на некоторых платформах Unix для определения типа целевого файла может потребоваться эквивалентный вызов symlink_metadata.
Примеры
use tokio::fs;
let mut entries = fs::read_dir(".").await?;
while let Some(entry) = entries.next_entry().await? {
if let Ok(file_type) = entry.file_type().await {
// Now let's show our entry's file type!
println!("{:?}: {:?}", entry.path(), file_type);
} else {
println!("Couldn't get file type for {:?}", entry.path());
}
}Реализации трейтов
Автоматические реализации трейтов
impl Freeze for DirEntry
impl RefUnwindSafe for DirEntry
impl Send for DirEntry
impl Sync for DirEntry
impl Unpin for DirEntry
impl UnsafeUnpin for DirEntry
impl UnwindSafe for DirEntry
Общие реализации
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Subscriber к этому типу и возвращает обёртку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/fs/struct.DirEntry.html