pub trait FileTypeExt {
// Required methods
fn is_block_device(&self) -> bool;
fn is_char_device(&self) -> bool;
fn is_fifo(&self) -> bool;
fn is_socket(&self) -> bool;
}
Available on Unix only.
Expand description
特定于 Unix 的 fs::FileType
扩展。
增加了对特殊 Unix 文件类型的支持,例如 block/character 设备,管道和套接字。
如果此文件类型是块设备,则返回 true
。
use std::fs;
use std::os::unix::fs::FileTypeExt;
use std::io;
fn main() -> io::Result<()> {
let meta = fs::metadata("block_device_file")?;
let file_type = meta.file_type();
assert!(file_type.is_block_device());
Ok(())
}
Run
如果此文件类型是 char 设备,则返回 true
。
use std::fs;
use std::os::unix::fs::FileTypeExt;
use std::io;
fn main() -> io::Result<()> {
let meta = fs::metadata("char_device_file")?;
let file_type = meta.file_type();
assert!(file_type.is_char_device());
Ok(())
}
Run
如果此文件类型为 fifo,则返回 true
。
use std::fs;
use std::os::unix::fs::FileTypeExt;
use std::io;
fn main() -> io::Result<()> {
let meta = fs::metadata("fifo_file")?;
let file_type = meta.file_type();
assert!(file_type.is_fifo());
Ok(())
}
Run
如果此文件类型是套接字,则返回 true
。
use std::fs;
use std::os::unix::fs::FileTypeExt;
use std::io;
fn main() -> io::Result<()> {
let meta = fs::metadata("unix.socket")?;
let file_type = meta.file_type();
assert!(file_type.is_socket());
Ok(())
}
Run