3 个版本
0.1.9 | 2023 年 6 月 3 日 |
---|---|
0.1.8 | 2023 年 6 月 3 日 |
0.1.7 | 2023 年 6 月 3 日 |
#15 in #create-file
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
、&str
或 file_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")?;