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

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

时间:2024-04-10 15:31:33浏览次数:23  
标签:std 文件 fs create API Result File main dir

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

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

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())?;
}

标签:std,文件,fs,create,API,Result,File,main,dir
From: https://blog.csdn.net/weixin_44786530/article/details/137506280

相关文章

  • 06-文件目录管理
    6.1Linux文件系统的架构Linux系统主要目录及其内容目录内容/bin构建最小系统所需要的命令(最常用的命令)/boot内核与启动文件/dev各种设备文件/etc系统软件的启动和配置文件/home用户的主目录/libC编译器的库/media可移动介质的安装点/opt......
  • 密码引擎-3-加密API研究
    任务内容研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接和代码链接。内容:0查找各种标准的原始文档,研究学习(至少包含CryptoAPI,PKCS#11,GMT0016-2012,GMT0018-2012)(5分)1总结这些API在编程中的使用方式(5分)2列出这些API包含的函数......
  • 加密API研究
    实验一-密码引擎-3-加密API研究查找各种标准的原始文档,研究学习(至少包含CryptoAPI,PKCS#11,GMT0016-2012,GMT0018-2012)(5分)微软的CryptoAPIhttps://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptoapi-system-architectureRAS公司的PKCS#11标准https://docs......
  • 对一个大文件进行逐行遍历,如下方法性能较高的是?
    A:写一个实现了IteratorAggregate接口的类,通过该类使用foreach遍历。B:使用file_get_contents将文件内容一次性载入内存,然后逐行遍历。C:通过exec函数,调用shell工具遍历D:使用别人写的类库正确答案:A答案分析:使用IteratorAggregate可将文件打开后通过移动指针的方式逐行遍历,不受......
  • 让 GitHub 仓库的代码占比统计中包含 Markdown 文件 开发 Git 命令行 个人知识管理 知
    tags:网站/GitHub开发/Git命令行/git个人知识管理/知识库知识领域/文档工程让GitHub仓库的代码占比统计中包含Markdown文件GitHub是一个基于web的版本控制和协作平台,主要用于存储、管理和分享开源代码和项目。它支持Git作为唯一的版本库格式,使得多个开发者可......
  • 实验一-密码引擎-3-加密API研究
    ##一、任务概览密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代......
  • 实验一-密码引擎-3-加密API研究
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录一、任务详情二、查找各种标准的原始文档,研究学习1.CryptoAPICryptoAPI学习链接:CryptoAPI由五个主要功能区域组成:2.PKCS#113.GMT0016-20124.GMT0018-2012三、总结这些API在编程中的使用方式四、列出这些AP......
  • 实验一-密码引擎3-加密API的研究
    目录一、查找各种标准的原始文档,研究学习Ⅰ.CryptoAPIⅡ.PKCS#11Ⅲ.GMT0016-2012Ⅳ.GMT0018-2012二、总结这些API在编程中的使用方式Ⅰ.CryptoAPIⅡ.PKCS#11Ⅲ.GMT0016-2012Ⅳ.GMT0018-2012三、列出这些API包含的函数,进行分类,并总结它们的异同3.1Cryp......
  • 实验一-密码引擎-3-加密API研究
    0查找各种标准的原始文档,研究学习(至少包含CryptoAPI,PKCS#11,GMT0016-2012,GMT0018-2012)CryptoAPIhttps://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptoapi-system-architecture#base-cryptographic-functions微软的CryptoAPI是Win32平台下为应用程序开发者......
  • 实验一-密码引擎-3-加密API研究
    实验一-密码引擎-3-加密API研究一、查找各种标准的原始文档,研究学习(至少包含CryptoAPI,PKCS#11,GMT0016-2012,GMT0018-2012)1.CryptoAPI微软的CryptoAPI是PKI推荐使用的加密API。功能是为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时的标准加密接口。Cry......