Struct std::fs::Metadata 1.0.0[−][src]
pub struct Metadata(_);
Expand description
有关文件的元数据信息。
此结构体是从 metadata 或 symlink_metadata 函数或方法返回的,表示有关文件的已知元数据,例如其权限,大小,修改时间等。
Implementations
如果此元数据用于目录,则返回 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::open 或 OpenOptions::open。
Examples
use std::fs; fn main() -> std::io::Result<()> { let metadata = fs::metadata("foo.txt")?; assert!(metadata.is_file()); Ok(()) }Run
如果此元数据用于符号链接,则返回 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
返回此元数据中列出的最后修改时间。
返回的值对应于 Unix 平台上的 stat 的 mtime 字段和 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 平台上的 stat 的 atime 字段和 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 内核上的 statx 的 btime 字段,在其他 Unix 平台上的 stat 的 birthtime 字段以及在 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
返回内部 filestat_t 的 st_dev 字段
返回内部 filestat_t 的 st_ino 字段
返回内部 filestat_t 的 st_nlink 字段
返回内部 filestat_t 的 st_size 字段
返回内部 filestat_t 的 st_atim 字段
返回内部 filestat_t 的 st_mtim 字段