Struct std::fs::Metadata1.0.0[][src]

pub struct Metadata(_);
Expand description

有关文件的元数据信息。

此结构体是从 metadatasymlink_metadata 函数或方法返回的,表示有关文件的已知元数据,例如其权限,大小,修改时间等。

Implementations

返回此元数据的文件类型。

Examples

fn main() -> std::io::Result<()> {
    use std::fs;

    let metadata = fs::metadata("foo.txt")?;

    println!("{:?}", metadata.file_type());
    Ok(())
}
Run

如果此元数据用于目录,则返回 true。 结果与 Metadata::is_file 的结果互斥,并且对于从 symlink_metadata 获得的符号链接元数据将为 false。

Examples

fn main() -> std::io::Result<()> {
    use std::fs;

    let metadata = fs::metadata("foo.txt")?;

    assert!(!metadata.is_dir());
    Ok(())
}
Run

如果此元数据用于常规文件,则返回 true。 结果与 Metadata::is_dir 的结果互斥,并且对于从 symlink_metadata 获得的符号链接元数据将为 false。

当目标只是读取 (或写入) 源时,可以读取 (或写入) 最可靠的测试源方法是打开它。 例如,仅使用 is_file 才能中断类似 Unix 的系统上的工作流,例如 diff <( prog_a )。 有关更多信息,请参见 File::openOpenOptions::open

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    assert!(metadata.is_file());
    Ok(())
}
Run
🔬 This is a nightly-only experimental API. (is_symlink #85748)

如果此元数据用于符号链接,则返回 true

Examples

#![feature(is_symlink)]
use std::fs;
use std::path::Path;
use std::os::unix::fs::symlink;

fn main() -> std::io::Result<()> {
    let link_path = Path::new("link");
    symlink("/origin_does_not_exists/", link_path)?;

    let metadata = fs::symlink_metadata(link_path)?;

    assert!(metadata.is_symlink());
    Ok(())
}
Run

返回此元数据用于的文件大小 (以字节为单位)。

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    assert_eq!(0, metadata.len());
    Ok(())
}
Run

返回此元数据所针对的文件的权限。

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    assert!(!metadata.permissions().readonly());
    Ok(())
}
Run

返回此元数据中列出的最后修改时间。

返回的值对应于 Unix 平台上的 statmtime 字段和 Windows 平台上的 ftLastWriteTime 字段。

Errors

此字段可能并非在所有平台上都可用,并且会在不可用的平台上返回 Err

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    if let Ok(time) = metadata.modified() {
        println!("{:?}", time);
    } else {
        println!("Not supported on this platform");
    }
    Ok(())
}
Run

返回此元数据的最后访问时间。

返回的值对应于 Unix 平台上的 statatime 字段和 Windows 平台上的 ftLastAccessTime 字段。

请注意,并非所有平台都会在文件的元数据中保留此字段的更新,例如,Windows 可以选择在访问文件时禁用此更新,而 Linux 同样具有 noatime

Errors

此字段可能并非在所有平台上都可用,并且会在不可用的平台上返回 Err

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    if let Ok(time) = metadata.accessed() {
        println!("{:?}", time);
    } else {
        println!("Not supported on this platform");
    }
    Ok(())
}
Run

返回此元数据中列出的创建时间。

返回的值与从 4.11 开始的 Linux 内核上的 statxbtime 字段,在其他 Unix 平台上的 statbirthtime 字段以及在 Windows 平台上的 ftCreationTime 字段相对应。

Errors

此字段可能并非在所有平台上都可用,并且将在不可用的平台或文件系统上返回 Err

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let metadata = fs::metadata("foo.txt")?;

    if let Ok(time) = metadata.created() {
        println!("{:?}", time);
    } else {
        println!("Not supported on this platform or filesystem");
    }
    Ok(())
}
Run

Trait Implementations

返回值的副本。 Read more

source 执行复制分配。 Read more

使用给定的格式化程序格式化该值。 Read more

This is supported on Unix only.

返回包含文件的设备的 ID。 Read more

返回索引节点号。 Read more

返回应用于此文件的权限。 Read more

返回指向该文件的硬链接数。 Read more

返回此文件所有者的用户标识。 Read more

返回此文件所有者的组 ID。 Read more

返回此文件的设备 ID (如果是特殊文件)。 Read more

返回此文件的总大小 (以字节为单位)。 Read more

返回文件的最后访问时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后访问时间,自 atime 起以纳秒为单位。 Read more

返回文件的最后修改时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后修改时间,自 mtime 起以纳秒为单位。 Read more

返回文件的最后状态更改时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后状态更改时间,自 ctime 起以纳秒为单位。 Read more

返回文件系统 I/O 的块大小。 Read more

返回以 512 字节为单位分配给文件的块数。 Read more

This is supported on Linux only.
👎 Deprecated since 1.8.0:

other methods of this trait are now preferred

获得对基础 stat 结构体的引用,该基础体包含 OS 返回的原始信息。 Read more

返回此文件所在的设备 ID。 Read more

返回索引节点号。 Read more

返回文件类型和模式。 Read more

返回文件的硬链接数。 Read more

返回文件所有者的用户标识。 Read more

返回文件所有者的组 ID。 Read more

返回此文件表示的设备 ID。仅与特殊文件有关。 Read more

返回文件的大小 (如果是常规文件或符号链接),以字节为单位。 Read more

返回文件的最后访问时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后访问时间,自 st_atime 起以纳秒为单位。 Read more

返回文件的最后修改时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后修改时间,自 st_mtime 起以纳秒为单位。 Read more

返回文件的最后状态更改时间,以自 Unix 纪元以来的秒数为单位。 Read more

返回文件的最后状态更改时间,自 st_ctime 起以纳秒为单位。 Read more

返回有效文件系统 I/O 的 “preferred” 块大小。 Read more

返回分配给文件的块数,以 512 字节为单位。 Read more

This is supported on WASI only.
🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_dev 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_ino 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_nlink 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_size 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_atim 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_mtim 字段

🔬 This is a nightly-only experimental API. (wasi_ext #71213)

返回内部 filestat_tst_ctim 字段

This is supported on Windows only.

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

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

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

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

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

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

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

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

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

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

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

Auto Trait Implementations

Blanket Implementations

获取 selfTypeIdRead more

从拥有的值中一成不变地借用。 Read more

从拥有的值中借用。 Read more

执行转换。

执行转换。

获得所有权后的结果类型。

通常通过克隆从借用数据中创建拥有的数据。 Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into #41263)

recently added

使用借来的数据来替换拥有的数据,通常是通过克隆。 Read more

发生转换错误时返回的类型。

执行转换。

发生转换错误时返回的类型。

执行转换。