Копирование файла в Rust
Копирование читает один путь и пишет другой. Система переносит байты без ручного чтения в строку, если достаточно дубликата. При удаче возвращают число скопированных байт.
Подготовим источник и сделаем копию:
use std::fs;
use std::io;
fn duplicate() -> io::Result<()> {
let size = fs::copy("note.txt", "note-copy.txt")?;
println!("{}", size);
Ok(())
}
fn main() -> io::Result<()> {
fs::write("note.txt", "body")?;
duplicate()?;
let text = fs::read_to_string("note-copy.txt")?;
println!("{}", text);
Ok(())
}
Исходный файл после копирования остается на месте:
use std::fs;
use std::io;
fn main() -> io::Result<()> {
fs::create_dir_all("docs")?;
fs::copy("note.txt", "docs/backup.txt")?;
let left = fs::read_to_string("note.txt")?;
println!("{}", left);
Ok(())
}
Дан путь:
let path = "data/src.txt";
Запишите текст, скопируйте в data/dst.txt
и сравните содержимое обоих файлов.
Даны пути:
let path = "note.txt";
Скажите, изменится ли исходный файл после успешного копирования.
Оформите копирование в функцию с исходом и выведите число байт.