W3cubDocs

/Rust

Trait std::os::unix::fs::MetadataExt

pub trait MetadataExt {
    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;
}
This is supported on Unix only.

Unix-specific extensions to fs::Metadata.

Required methods

fn dev(&self) -> u64

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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(())
}
This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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

This is supported on Unix only.

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(())
}
Loading content...

Implementors

impl MetadataExt for Metadata[src]

Loading content...

© 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