Метод try_clone
Метод try_clone класса File создает новый
объект File, который ссылается на тот же
файл, что и исходный. Метод не принимает
параметров. В отличие от метода clone,
который может паниковать при ошибке,
try_clone возвращает результат
Result<File, Error>, что позволяет
обработать возможную ошибку.
Синтаксис
file.try_clone()
Пример
Давайте откроем файл "test.txt" и создадим
его клон с помощью метода try_clone:
use std::fs::File;
fn main()
{
let file = File::open("test.txt").unwrap();
let cloned = file.try_clone().unwrap();
println!("{:?}", cloned);
}
Результат выполнения кода:
File { fd: 4, path: "test.txt", read: true, write: false }
Пример
Давайте создадим клон файла и проверим, что оба объекта ссылаются на один и тот же файл:
use std::fs::File;
fn main()
{
let file = File::open("test.txt").unwrap();
let cloned = file.try_clone().unwrap();
let meta1 = file.metadata().unwrap();
let meta2 = cloned.metadata().unwrap();
println!("{}", meta1.len() == meta2.len());
}
Результат выполнения кода:
true