#file #create-file #string #delete-file #write-file #directory #access

file_access

A file_access 包装库,使执行某些文件操作更加方便

3 个版本

0.1.9 2023 年 6 月 3 日
0.1.8 2023 年 6 月 3 日
0.1.7 2023 年 6 月 3 日

#15 in #create-file

Apache-2.0

40KB
459 代码行(不含注释)

Rust 文件访问包装库

一个包含 AsFile 特质的 file_access 包装库,使执行某些文件操作更加方便。

let text = "strpath".as_file().read_string()?;
println!("{text}");

"file.1".as_file().copy_to(&"file.2")?;
"file.2".as_file().rename_to(&"file.3")?;

暴露的操作

  • read_string: 返回 String
  • read_lines: 返回 Vec<String>
  • write_string: 接受一个 借用AsRef<str>,例如 String&str。此函数将在文件或其完整目录路径不存在时创建文件,并完全替换其内容。
  • write_lines: 接受一个 借用Vec<AsRef<str>>,例如 Vec<String>Vec<&str>。此函数将在文件或其完整目录路径不存在时创建文件,并将提供的字符串各自放在一行中完全替换内容。
  • append_string: 接受一个 借用AsRef<str>,例如 String&str。此函数将追加文件内容,或在文件尚不存在时创建新文件和其完整目录路径。
  • append_lines:接受一个借用类型的 Vec<AsRef<str>>,例如 Vec<String>Vec<&str>。此函数将向文件追加内容,或者如果文件尚不存在,则写入新文件及其完整目录路径。
  • delete:此函数将删除文件或目录,并递归删除子目录。
  • copy/copy_to:此函数将复制文件内容并将其写入目标位置。如果目标已存在,则完全替换其内容。
  • rename/rename_to:此函数将复制文件内容,将其写入目标位置,然后删除源文件。如果目标已存在,则完全替换其内容。

用法

使用此库有三种方式

  • 通过直接调用方法: let result = file_access::METHOD_NAME(&file_path, &..)?
  • 使用FilePath处理程序: let file = FilePath::access(&file_path); let result = file.METHOD_NAME(&..)?
  • 使用AsFile特性: let file = "string_path".as_file(); let result = file.METHOD_NAME(&..)?

其中 file_path 可以是一个借用类型的 String&strfile_access::FilePath

示例

  • 直接调用 read_string
let text: String = file_access::read_string(&file_path)?;
println!("{text}");
  • 使用 FilePath 处理程序
let file: FilePath = FilePath::access(&file_path);
let lines: Vec<&str> = vec!["hello", "world"];

file.write_lines(&lines)?;
file.append_lines(&lines)?;
file.copy_to(&another_path)?;
  • 使用 AsFile 特性
// delete a file:
file_path.as_file().delete()?;

// rename a file:
"another_path".as_file().rename_to(&"a_new_file_path")?;

无运行时依赖