[][src]Function filecmp::cmp

pub fn cmp(
    f1: impl AsRef<Path>,
    f2: impl AsRef<Path>,
    shallow: bool
) -> Result<bool>

Compare two files.

Arguments:

  • f1 -- First file name
  • f2 -- Second file name
  • shallow -- Just check stat signature (do not read the files).

Return value:

  • True if the files are the same, False otherwise.

This function uses a cache for past comparisons and the results, with cache entries invalidated if their stat information changes. The cache may be cleared by calling clear_cache().

Example

use std::env;
use std::io::Write;
use std::fs::File;
use filecmp;

let temp_dir = env::temp_dir();
let foo_path = temp_dir.join("foo.txt");
let bar_path = temp_dir.join("bar.txt");
let baz_path = temp_dir.join("baz.txt");

{ // Create files in temporary directory
    let mut foo = File::create(&foo_path).unwrap();
    let mut bar = File::create(&bar_path).unwrap();
    let mut baz = File::create(&baz_path).unwrap();

    foo.write_all(b"hello filecmp!").unwrap();
    bar.write_all(b"hello filecmp!").unwrap();
    baz.write_all(b"hello world!").unwrap();
} // Close them

let a = filecmp::cmp(&foo_path, &bar_path, true).unwrap();
let b = filecmp::cmp(&foo_path, &baz_path, true).unwrap();
let c = filecmp::cmp(&bar_path, &baz_path, true).unwrap();
 
assert!(a);
assert!(!b);
assert!(!c);