Trait std::os::windows::fs::MetadataExt

1.1.0 · source ·
pub trait MetadataExt {
    // Required methods
    fn file_attributes(&self) -> u32;
    fn creation_time(&self) -> u64;
    fn last_access_time(&self) -> u64;
    fn last_write_time(&self) -> u64;
    fn file_size(&self) -> u64;
    fn volume_serial_number(&self) -> Option<u32>;
    fn number_of_links(&self) -> Option<u32>;
    fn file_index(&self) -> Option<u64>;
}
Available on Windows only.
Expand description

特定于 Windows 的 fs::Metadata 扩展。

这个 trait 公开的数据成员与 BY_HANDLE_FILE_INFORMATION 结构体的成员相对应。

Required Methods§

source

fn file_attributes(&self) -> u32

返回此元数据的 dwFileAttributes 字段的值。

该字段包含文件或目录的文件系统属性信息。 有关可能的值及其说明,请参见 Windows 开发人员中心中的 文件属性常量

Examples
use std::io;
use std::fs;
use std::os::windows::prelude::*;

fn main() -> io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;
    let attributes = metadata.file_attributes();
    Ok(())
}
Run
source

fn creation_time(&self) -> u64

返回此元数据的 ftCreationTime 字段的值。

返回的 64 位值等效于 FILETIME 结构体,它表示自 1601 年 1 月 1 日以来的 100 纳秒间隔 (UTC)。 建议将结构体自动转换为 u64 值。

如果底层文件系统不支持创建时间,则返回值为 0.

Examples
use std::io;
use std::fs;
use std::os::windows::prelude::*;

fn main() -> io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;
    let creation_time = metadata.creation_time();
    Ok(())
}
Run
source

fn last_access_time(&self) -> u64

返回此元数据的 ftLastAccessTime 字段的值。

返回的 64 位值等效于 FILETIME 结构体,它表示自 1601 年 1 月 1 日以来的 100 纳秒间隔 (UTC)。

建议将结构体自动转换为 u64 值。

对于文件,该值指定最后一次读取或写入文件的时间。 对于目录,该值指定创建目录的时间。 对于文件和目录,指定的日期都是正确的,但是一天中的时间始终设置为午夜。

如果底层文件系统不支持上次访问时间,则返回值为 0.

Examples
use std::io;
use std::fs;
use std::os::windows::prelude::*;

fn main() -> io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;
    let last_access_time = metadata.last_access_time();
    Ok(())
}
Run
source

fn last_write_time(&self) -> u64

返回此元数据的 ftLastWriteTime 字段的值。

返回的 64 位值等效于 FILETIME 结构体,它表示自 1601 年 1 月 1 日以来的 100 纳秒间隔 (UTC)。 建议将结构体自动转换为 u64 值。

对于文件,该值指定文件的最后写入时间。对于目录,结构体指定目录的创建时间。

如果底层文件系统不支持最后写入时间,则返回值为 0.

Examples
use std::io;
use std::fs;
use std::os::windows::prelude::*;

fn main() -> io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;
    let last_write_time = metadata.last_write_time();
    Ok(())
}
Run
source

fn file_size(&self) -> u64

返回此元数据的 nFileSize{High,Low} 字段的值。

返回的值对目录没有意义。

Examples
use std::io;
use std::fs;
use std::os::windows::prelude::*;

fn main() -> io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;
    let file_size = metadata.file_size();
    Ok(())
}
Run
source

fn volume_serial_number(&self) -> Option<u32>

🔬This is a nightly-only experimental API. (windows_by_handle #63010)

返回此元数据的 dwVolumeSerialNumber 字段的值。

如果 Metadata 实例是从调用创建到 DirEntry::metadata,则将返回 None。 如果此 Metadata 是使用 fs::metadataFile::metadata 创建的,则它将返回 Some

🔬This is a nightly-only experimental API. (windows_by_handle #63010)

返回此元数据的 nNumberOfLinks 字段的值。

如果 Metadata 实例是从调用创建到 DirEntry::metadata,则将返回 None。 如果此 Metadata 是使用 fs::metadataFile::metadata 创建的,则它将返回 Some

source

fn file_index(&self) -> Option<u64>

🔬This is a nightly-only experimental API. (windows_by_handle #63010)

返回此元数据的 nFileIndex{Low,High} 字段的值。

如果 Metadata 实例是从调用创建到 DirEntry::metadata,则将返回 None。 如果此 Metadata 是使用 fs::metadataFile::metadata 创建的,则它将返回 Some

Implementors§