pub struct Metadata(_);
Expand description
有关文件的元数据信息。
此结构体是从 metadata
或 symlink_metadata
函数或方法返回的,表示有关文件的已知元数据,例如其权限,大小,修改时间等。
Implementations§
source§impl Metadata
impl Metadata
sourcepub fn is_dir(&self) -> bool
pub fn is_dir(&self) -> bool
如果此元数据用于目录,则返回 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(())
}
Runsourcepub fn is_file(&self) -> bool
pub fn is_file(&self) -> bool
如果此元数据用于常规文件,则返回 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(())
}
Run1.58.0 · sourcepub fn is_symlink(&self) -> bool
pub fn is_symlink(&self) -> bool
如果此元数据用于符号链接,则返回 true
。
Examples
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_exist/", link_path)?;
let metadata = fs::symlink_metadata(link_path)?;
assert!(metadata.is_symlink());
Ok(())
}
Runsourcepub fn permissions(&self) -> Permissions
pub fn permissions(&self) -> Permissions
1.10.0 · sourcepub fn modified(&self) -> Result<SystemTime>
pub fn modified(&self) -> Result<SystemTime>
返回此元数据中列出的最后修改时间。
返回的值对应于 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(())
}
Run1.10.0 · sourcepub fn accessed(&self) -> Result<SystemTime>
pub fn accessed(&self) -> Result<SystemTime>
返回此元数据的最后访问时间。
返回的值对应于 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(())
}
Run1.10.0 · sourcepub fn created(&self) -> Result<SystemTime>
pub fn created(&self) -> Result<SystemTime>
返回此元数据中列出的创建时间。
返回的值与从 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(())
}
RunTrait Implementations§
1.1.0 · source§impl MetadataExt for Metadata
Available on Windows only.
impl MetadataExt for Metadata
source§fn file_attributes(&self) -> u32
fn file_attributes(&self) -> u32
dwFileAttributes
字段的值。 Read moresource§fn creation_time(&self) -> u64
fn creation_time(&self) -> u64
ftCreationTime
字段的值。 Read moresource§fn last_access_time(&self) -> u64
fn last_access_time(&self) -> u64
ftLastAccessTime
字段的值。 Read moresource§fn last_write_time(&self) -> u64
fn last_write_time(&self) -> u64
ftLastWriteTime
字段的值。 Read moresource§fn volume_serial_number(&self) -> Option<u32>
fn volume_serial_number(&self) -> Option<u32>
windows_by_handle
#63010)dwVolumeSerialNumber
字段的值。 Read more1.1.0 · source§impl MetadataExt for Metadata
Available on Unix only.
impl MetadataExt for Metadata
1.1.0 · source§impl MetadataExt for Metadata
Available on Linux only.
impl MetadataExt for Metadata
source§fn as_raw_stat(&self) -> &stat
fn as_raw_stat(&self) -> &stat
stat
结构的引用,该结构包含操作系统返回的原始信息。 Read moresource§fn st_blksize(&self) -> u64
fn st_blksize(&self) -> u64
source§impl MetadataExt for Metadata
Available on WASI only.
impl MetadataExt for Metadata
source§fn dev(&self) -> u64
fn dev(&self) -> u64
wasi_ext
#71213)filestat_t
的 st_dev
字段source§fn ino(&self) -> u64
fn ino(&self) -> u64
wasi_ext
#71213)filestat_t
的 st_ino
字段source§fn nlink(&self) -> u64
fn nlink(&self) -> u64
wasi_ext
#71213)filestat_t
的 st_nlink
字段source§fn size(&self) -> u64
fn size(&self) -> u64
wasi_ext
#71213)filestat_t
的 st_size
字段source§fn atim(&self) -> u64
fn atim(&self) -> u64
wasi_ext
#71213)filestat_t
的 st_atim
字段