Rust File Access Wrapper Lib
A file_access wrapper-lib containing the AsFile trait to make performing certain file manipulations more convenient.
let text = "strpath".as_file.read_string?;
println!;
"file.1".as_file.copy_to?;
"file.2".as_file.rename_to?;
Exposed Actions
read_string: ReturnsString.read_lines: ReturnsVec<String>.write_string: Takes a borrowedAsRef<str>such asStringor&str. This function will create a file and its full directory path if they don't exist, and will entirely replace the contents.write_lines: Takes a borrowedVec<AsRef<str>>such asVec<String>orVec<&str>. This function will create a file and its full directory path if they don't exist, and will entirely replace the contents with the provided strings each on its own line.append_string: Takes a borrowedAsRef<str>such asStringor&str. This function will append the contents of a file, or write a new one and its full directory path if they don't exist yet.append_lines: Takes a borrowedVec<AsRef<str>>such asVec<String>orVec<&str>. This function will append the contents of a file, or write a new one and its full directory path if they don't exist yet.delete: This function will delete a file, or a directory recursively.copy/copy_to: This function will copy the contents of a file and write it to a destination. It will entirely replace the contents of the destination if it already exists.rename/rename_to: This function will copy the contents of a file, write it to a destination and then delete the source. It will entirely replace the contents of the destination if it already exists.
Usages
There are 3 ways to use this library:
- By calling methods directly:
let result = file_access::METHOD_NAME(&file_path, &..)? - By using a FilePath handle:
let file = FilePath::access(&file_path); let result = file.METHOD_NAME(&..)? - By using the AsFile trait:
let file = "string_path".as_file(); let result = file.METHOD_NAME(&..)?
where file_path can be a borrowed String, &str, or file_access::FilePath.
Examples
- Call
read_stringdirectly:
let text: String = read_string?;
println!;
- Use a
FilePathhandle:
let file: FilePath = access;
let lines: = vec!;
file.write_lines?;
file.append_lines?;
file.copy_to?;
- Use the
AsFiletrait:
// delete a file:
file_path.as_file.delete?;
// rename a file:
"another_path".as_file.rename_to?;