File::create
使用File
的关联函数(类似Java
中的静态方法)create
,创建文件,如果存在,则覆盖。
use std::fs::{File, Metadata};fn main() -> std::io::Result<()> {let file: File = File::create("foo.txt")?;let metadata: Metadata = file.metadata()?;println!("{:?}", metadata);
}
fs::read_dir
fs::read_dir
函数读取文件夹目录。
let dir: fs::ReadDir = fs::read_dir("/")?;
for x in dir { // Result<DirEntry>let entry: DirEntry = x?;println!("{:?}, {:?}", entry.file_name(), entry.path());
}
fs::write
fs::write
函数向文件中写入内容。
fn main() -> std::io::Result<()> {fs::write("foo.txt", "abc".as_bytes())?;
}
OpenOptions append
使用OpenOptions
的append
方法,对文件追加内容。
fn main() -> std::io::Result<()> {let mut file = OpenOptions::new().append(true).open("foo.txt")?;file.write("xyz".as_bytes())?;
}
fs::read_to_string
fs::read_to_string
函数:读取文件中的内容
fn main() -> std::io::Result<()> {let string: String = fs::read_to_string("foo.txt")?;println!("{}", string);
}
fs::copy
fs::copy
函数:拷贝文件。
fn main() -> std::io::Result<()> {fs::copy("foo.txt", "foo2.txt")?;
}
fs::rename
fs::rename
函数:文件重命名。
fn main() -> std::io::Result<()> {fs::rename("foo2.txt", "foo3.txt")?;
}
fs::remove_file
fs::remove_file
函数:移除删除文件。
fn main() -> std::io::Result<()> {fs::remove_file("foo.txt")?;
}
fs::create_dir
fs::create_dir
函数:创建文件夹,如果指定了多级目录,路径中的目录必须存在。
fn main() -> std::io::Result<()> {fs::create_dir("test_dir")?;
}
fs::create_dir_all
fs::create_dir_all
函数:创建文件夹,路径中不存在的目录也会同步创建。
fn main() -> std::io::Result<()> {fs::create_dir_all("test_dir2/sub_dir")?;fs::create_dir_all("test_dir2/sub_dir2")?;
}
fs::remove_dir
fs::remove_dir
函数:移除文件夹,文件夹中不能包含文件或子文件夹。
fn main() -> std::io::Result<()> {ffs::remove_dir("test_dir")?;
}
fs::remove_dir_all
fs::remove_dir_all
函数:删除整个文件夹,无论是否包含文件或子文件夹,将此文件夹中的内容全部删除。
fn main() -> std::io::Result<()> {fs::remove_dir_all("test_dir2")?;
}
OpenOptions create
OpenOptions
中的create
方法表示,不存在就创建文件,read
:可读,write
:可写,append
:追加写。
fn main() -> std::io::Result<()> {// Opening a file for both reading and writing, as well as creating it if it doesn't exist:let mut file = OpenOptions::new().read(true).write(true).append(true).create(true).open("foo.txt")?;file.write_all("1234".as_bytes())?;
}