W3cubDocs

/Rust

Function std::fs::copy

pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> Result<u64>

Copies the contents of one file to another. This function will also copy the permission bits of the original file to the destination file.

This function will overwrite the contents of to.

Note that if from and to both point to the same file, then the file will likely get truncated by this operation.

On success, the total number of bytes copied is returned and it is equal to the length of the to file as reported by metadata.

If you’re wanting to copy the contents of one file to another and you’re working with Files, see the io::copy function.

Platform-specific behavior

This function currently corresponds to the open function in Unix with O_RDONLY for from and O_WRONLY, O_CREAT, and O_TRUNC for to. O_CLOEXEC is set for returned file descriptors. On Windows, this function currently corresponds to CopyFileEx. Alternate NTFS streams are copied but only the size of the main stream is returned by this function. On MacOS, this function corresponds to fclonefileat and fcopyfile. Note that, this may change in the future.

Errors

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

  • The from path is not a file.
  • The from file does not exist.
  • The current process does not have the permission rights to access from or write to.

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    fs::copy("foo.txt", "bar.txt")?;  // Copy foo.txt to bar.txt
    Ok(())
}

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/fs/fn.copy.html