[][src]Function fs_extra::copy_items_with_progress

pub fn copy_items_with_progress<P, Q, F>(
    from: &[P],
    to: Q,
    options: &CopyOptions,
    progress_handler: F
) -> Result<u64> where
    P: AsRef<Path>,
    Q: AsRef<Path>,
    F: FnMut(TransitProcess) -> TransitProcessResult

Copies list directories and files to another place using recursive method, with recept information about process. This function will also copy the permission bits of the original files to destionation files (not for directories).

Errors

This function will return an error in the following situations, but is not limited to just these case:

  • List from contains file or directory does not exist.

  • List from contains file or directory with invalid name.

  • The current process does not have the permission rights to access to file from lists from or to.

Example

This example is not tested

 extern crate fs_extra;
 use fs_extra::dir::copy;

 let options = dir::CopyOptions::new(); //Initialize default values for CopyOptions
 let handle = |process_info: TransitProcess| {
    println!("{}", process_info.total_bytes);
    fs_extra::dir::TransitProcessResult::ContinueOrAbort
 }
 // copy dir1 and file1.txt to target/dir1 and target/file1.txt
 let mut from_paths = Vec::new();
 from_paths.push("source/dir1");
 from_paths.push("source/file.txt");
 copy_items_with_progress(&from_paths, "target", &options, handle)?;