Trait std::os::unix::fs::MetadataExt
pub trait MetadataExt { Show 16 methods fn dev(&self) -> u64; fn ino(&self) -> u64; fn mode(&self) -> u32; fn nlink(&self) -> u64; fn uid(&self) -> u32; fn gid(&self) -> u32; fn rdev(&self) -> u64; fn size(&self) -> u64; fn atime(&self) -> i64; fn atime_nsec(&self) -> i64; fn mtime(&self) -> i64; fn mtime_nsec(&self) -> i64; fn ctime(&self) -> i64; fn ctime_nsec(&self) -> i64; fn blksize(&self) -> u64; fn blocks(&self) -> u64; }
Unix-specific extensions to fs::Metadata
.
Required methods
fn dev(&self) -> u64
Returns the ID of the device containing the file.
Examples
use std::io; use std::fs; use std::os::unix::fs::MetadataExt; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let dev_id = meta.dev(); Ok(()) }
fn ino(&self) -> u64
Returns the inode number.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let inode = meta.ino(); Ok(()) }
fn mode(&self) -> u32
Returns the rights applied to this file.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let mode = meta.mode(); let user_has_write_access = mode & 0o200; let user_has_read_write_access = mode & 0o600; let group_has_read_access = mode & 0o040; let others_have_exec_access = mode & 0o001; Ok(()) }
fn nlink(&self) -> u64
Returns the number of hard links pointing to this file.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let nb_hard_links = meta.nlink(); Ok(()) }
fn uid(&self) -> u32
Returns the user ID of the owner of this file.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let user_id = meta.uid(); Ok(()) }
fn gid(&self) -> u32
Returns the group ID of the owner of this file.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let group_id = meta.gid(); Ok(()) }
fn rdev(&self) -> u64
Returns the device ID of this file (if it is a special one).
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let device_id = meta.rdev(); Ok(()) }
fn size(&self) -> u64
Returns the total size of this file in bytes.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let file_size = meta.size(); Ok(()) }
fn atime(&self) -> i64
Returns the last access time of the file, in seconds since Unix Epoch.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let last_access_time = meta.atime(); Ok(()) }
fn atime_nsec(&self) -> i64
Returns the last access time of the file, in nanoseconds since atime
.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let nano_last_access_time = meta.atime_nsec(); Ok(()) }
fn mtime(&self) -> i64
Returns the last modification time of the file, in seconds since Unix Epoch.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let last_modification_time = meta.mtime(); Ok(()) }
fn mtime_nsec(&self) -> i64
Returns the last modification time of the file, in nanoseconds since mtime
.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let nano_last_modification_time = meta.mtime_nsec(); Ok(()) }
fn ctime(&self) -> i64
Returns the last status change time of the file, in seconds since Unix Epoch.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let last_status_change_time = meta.ctime(); Ok(()) }
fn ctime_nsec(&self) -> i64
Returns the last status change time of the file, in nanoseconds since ctime
.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let nano_last_status_change_time = meta.ctime_nsec(); Ok(()) }
fn blksize(&self) -> u64
Returns the block size for filesystem I/O.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let block_size = meta.blksize(); Ok(()) }
fn blocks(&self) -> u64
Returns the number of blocks allocated to the file, in 512-byte units.
Please note that this may be smaller than st_size / 512
when the file has holes.
Examples
use std::fs; use std::os::unix::fs::MetadataExt; use std::io; fn main() -> io::Result<()> { let meta = fs::metadata("some_file")?; let blocks = meta.blocks(); Ok(()) }
Implementors
impl MetadataExt for Metadata
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/os/unix/fs/trait.MetadataExt.html