Функция set_permissions
Функция set_permissions изменяет права доступа
к файлу или директории по указанному пути. Первым
параметром функция принимает путь к файлу или директории,
а вторым - объект Permissions с новыми правами
доступа. Функция возвращает io::Result<()>:
Ok(()) в случае успеха или ошибку Err,
если изменить права не удалось.
Синтаксис
fs::set_permissions(path, perm)
Пример
Давайте создадим файл и сделаем его доступным только для чтения:
use std::fs;
use std::fs::Permissions;
fn main()
{
fs::write("test.txt", "abcde").unwrap();
let mut perm = fs::metadata("test.txt").unwrap().permissions();
perm.set_readonly(true);
fs::set_permissions("test.txt", perm).unwrap();
let res = fs::metadata("test.txt").unwrap().permissions();
println!("{}", res.readonly());
}
Результат выполнения кода:
true
Пример
Давайте вернём файлу возможность записи и проверим результат:
use std::fs;
fn main()
{
fs::write("test.txt", "abcde").unwrap();
let mut perm = fs::metadata("test.txt").unwrap().permissions();
perm.set_readonly(true);
fs::set_permissions("test.txt", perm).unwrap();
let mut perm = fs::metadata("test.txt").unwrap().permissions();
perm.set_readonly(false);
fs::set_permissions("test.txt", perm).unwrap();
let res = fs::metadata("test.txt").unwrap().permissions();
println!("{}", res.readonly());
}
Результат выполнения кода:
false
Пример
Давайте попробуем изменить права доступа к несуществующему файлу и обработаем ошибку:
use std::fs;
fn main()
{
let mut perm = fs::metadata("test.txt")
.unwrap()
.permissions();
perm.set_readonly(true);
let res = fs::set_permissions("no_file.txt", perm);
println!("{}", res.is_err());
}
Результат выполнения кода:
true
Смотрите также
-
функция
metadata,
которая возвращает метаданные файла или директории -
функция
symlink_metadata,
которая возвращает метаданные символической ссылки -
функция
read,
которая читает содержимое файла в байтовый вектор -
функция
write,
которая записывает данные в файл