Rust 标准库 API 文件和文件夹操作 File,读取/创建/修改/追加/删除/重命名文件等

File::create

使用File的关联函数(类似Java中的静态方法)create,创建文件,如果存在,则覆盖。

rust 复制代码
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函数读取文件夹目录。

rust 复制代码
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函数向文件中写入内容。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::write("foo.txt", "abc".as_bytes())?;
}

OpenOptions append

使用OpenOptionsappend方法,对文件追加内容。

rust 复制代码
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函数:读取文件中的内容

rust 复制代码
fn main() -> std::io::Result<()> {
    let string: String = fs::read_to_string("foo.txt")?;
    println!("{}", string);
}

fs::copy

fs::copy函数:拷贝文件。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::copy("foo.txt", "foo2.txt")?;
}

fs::rename

fs::rename函数:文件重命名。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::rename("foo2.txt", "foo3.txt")?;
}

fs::remove_file

fs::remove_file函数:移除删除文件。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::remove_file("foo.txt")?;
}

fs::create_dir

fs::create_dir函数:创建文件夹,如果指定了多级目录,路径中的目录必须存在。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::create_dir("test_dir")?;
}

fs::create_dir_all

fs::create_dir_all函数:创建文件夹,路径中不存在的目录也会同步创建。

rust 复制代码
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函数:移除文件夹,文件夹中不能包含文件或子文件夹。

rust 复制代码
fn main() -> std::io::Result<()> {
    ffs::remove_dir("test_dir")?;
}

fs::remove_dir_all

fs::remove_dir_all函数:删除整个文件夹,无论是否包含文件或子文件夹,将此文件夹中的内容全部删除。

rust 复制代码
fn main() -> std::io::Result<()> {
    fs::remove_dir_all("test_dir2")?;
}

OpenOptions create

OpenOptions中的create方法表示,不存在就创建文件,read:可读,write:可写,append:追加写。

rust 复制代码
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())?;
}
相关推荐
qq_2780637119 分钟前
vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现
前端·pdf
IT小鸟鸟20 分钟前
LinkList 的底层数据结构及优缺点
java·数据结构·算法
桥豆麻袋939321 分钟前
vite 初始化react项目
前端·react.js·前端框架
咸鱼睡不醒_22 分钟前
SpringBoot项目接入DeepSeek
java·spring boot·后端
2401_8370885022 分钟前
CSS相对定位与绝对定位
前端·css
明月看潮生29 分钟前
青少年编程与数学 02-019 Rust 编程基础 02课题、开始编程
开发语言·算法·青少年编程·rust·编程与数学
ghostmen35 分钟前
Java实现minio上传文件加解密操作
java·minio
刃神太酷啦1 小时前
C++入门(下)--《Hello C++ World!》(2)(C/C++)
java·c语言·c++·git·算法·github
梦想平凡1 小时前
开元类双端互动组件部署实战全流程教程(第1部分:环境与搭建)
运维·服务器·前端·游戏·node.js
努力的搬砖人.1 小时前
maven如何搭建自己的私服(windows版)?
java·windows·maven