Переименование файла в Rust
Переименование меняет путь. На одном диске это часто просто новая запись в каталоге, а содержимое остается тем же. Команда принимает старый и новый путь и возвращает результат без значения при удаче.
Создадим файл и перенесем имя:
use std::fs;
use std::io;
fn move_name() -> io::Result<()> {
fs::rename("note.txt", "note-old.txt")?;
Ok(())
}
fn main() -> io::Result<()> {
fs::write("note.txt", "keep")?;
move_name()?;
let text = fs::read_to_string("note-old.txt")?;
println!("{}", text);
Ok(())
}
После переименования старый путь перестает находиться:
use std::fs;
fn main() {
match fs::metadata("note.txt") {
Ok(_) => println!("old path"),
Err(err) => println!("{}", err),
}
}
Дан путь:
let path = "docs/draft.txt";
Создайте файл, переименуйте в docs/final.txt
и прочитайте новый путь.
Дан путь:
let path = "note.txt";
Скажите, останется ли текст на диске после смены имени.
Вынесите переименование в функцию с двумя строками пути и исходом.