Trait MetadataExt
trait MetadataExt
Unix-specific extensions to fs::Metadata.
Required Methods
fn dev(self: &Self) -> u64Returns 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: &Self) -> u64Returns 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: &Self) -> u32Returns 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: &Self) -> u64Returns 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: &Self) -> u32Returns 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: &Self) -> u32Returns 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: &Self) -> u64Returns 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: &Self) -> u64Returns 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: &Self) -> i64Returns 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: &Self) -> i64Returns 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: &Self) -> i64Returns 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: &Self) -> i64Returns 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: &Self) -> i64Returns 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: &Self) -> i64Returns 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: &Self) -> u64Returns 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: &Self) -> u64Returns the number of blocks allocated to the file, in 512-byte units.
Please note that this may be smaller than
st_size / 512when 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 fs::Metadata