3 releases
| 0.1.9 | Jun 3, 2023 |
|---|---|
| 0.1.8 | Jun 3, 2023 |
| 0.1.7 | Jun 3, 2023 |
#18 in #create-file
24 downloads per month
40KB
459 lines
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!("{text}");
"file.1".as_file().copy_to(&"file.2")?;
"file.2".as_file().rename_to(&"file.3")?;
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 = file_access::read_string(&file_path)?;
println!("{text}");
- Use a
FilePathhandle:
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)?;
- Use the
AsFiletrait:
// delete a file:
file_path.as_file().delete()?;
// rename a file:
"another_path".as_file().rename_to(&"a_new_file_path")?;