blob: 4522f4cc94b0efeae6171f5284859af488b2e4c4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
use std::fs::{copy, create_dir_all, read_dir};
use std::io::Result;
use std::path::Path;
pub fn recursively_copy(source: &Path, target: &Path) -> Result<()> {
let entries = read_dir(source)?;
for entry in entries {
let entry = entry?;
let entry_type = entry.file_type()?;
let entry_name = entry.file_name();
let entry_source = entry.path();
let entry_target = target.join(entry_name);
if entry_type.is_dir() {
create_dir_all(&entry_target)?;
recursively_copy(&entry_source, &entry_target)?;
} else {
copy(&entry_source, &entry_target)?;
}
}
Ok(())
}
|