Function permissions::functions::is_readable
source · pub fn is_readable(path: impl AsRef<Path>) -> Result<bool>
Expand description
Check if current process has permission to read.
Errors
Same as access_syscall
.
Examples
use permissions::is_readable;
use std::io;
fn main() -> io::Result<()> {
println!("{}", is_readable("src/lib.rs")?);
println!("{}", is_readable("/root")?);
println!("{}", is_readable("/")?);
// may return `Err(kind: PermissionDenied)`
// println!("{}", is_readable("/root/any")?);
Ok(())
}
Examples found in repository?
examples/is_file_example.rs (line 16)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
fn main() -> io::Result<()> {
// Asserts with files
let this_program_path = env::args().next().unwrap();
assert!(is_executable(&this_program_path)?);
let this_file = "examples/example2.rs";
assert!(is_readable(&this_file)?);
let temp_file = "temp.txt";
File::create(temp_file)?;
assert!(is_writable(&temp_file)?);
assert!(is_removable(&temp_file)?);
fs::remove_file(temp_file)?;
// -------------------------
// Let's try with directories too
let temp_directory = "temp/";
fs::create_dir(temp_directory)?;
assert!(is_readable(&temp_directory)?);
assert!(is_writable(&temp_directory)?);
assert!(is_executable(&temp_directory)?);
assert!(is_removable(&temp_directory)?);
fs::remove_dir(temp_directory)?;
println!("Finished.");
Ok(())
}