#file-copy #file #copy #file-path

is_copy

判断两个文件是否为彼此的副本

7 个版本

0.1.6 2023 年 1 月 6 日
0.1.5 2022 年 12 月 26 日

#14 in #file-copy

34 每月下载量
用于 mmt

MIT/Apache 许可证

8KB
102

is_copy

判断两个文件是否为彼此的副本

用法

将其添加到您的 Cargo.toml

[dependencies]
is_copy = "0.1"

示例

创建并使用 is_copy 判断文件

use is_copy::is_file_copy;

let path_a = Path::new("./data/file_a.txt");
let path_b = Path::new("./data/file_b.txt");

let is_copy = is_file_copy(path_a, path_b);
println!("{:?} and {:?} is copy: {}", is_copy);

许可证

许可协议为以下之一

由您选择。

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在该作品中的任何贡献,应如上所述双重许可,不附加任何额外条款或条件。


lib.rs:

用法

将其添加到您的 Cargo.toml

[dependencies]
is_copy = "0.1"

示例

创建并使用 is_copy 判断文件

use std::{
    fs::{self, copy, File},
    io::Write,
    path::{Path, PathBuf},
};
use is_copy::is_file_copy;

let path_data = Path::new("./data");
if path_data.exists() {
    fs::remove_dir_all(path_data).unwrap();
}
fs::create_dir_all(path_data).unwrap();
let path_a = path_data.join("file_a.txt");
let path_a_copy = path_data.join("file_a_copy.txt");
let path_b = path_data.join("file_b.txt");
let mut file_a = File::create(&path_a).unwrap();
let mut file_b = File::create(&path_b).unwrap();
file_a.write_all(b"this is file a").unwrap();
file_b.write_all(b"this is file b").unwrap();
for i in 0..1_000 {
    let line = format!("this is line {}\n", i);
    file_a.write_all(line.as_bytes()).unwrap();
    file_b.write_all(line.as_bytes()).unwrap();
}
copy(&path_a, &path_a_copy).unwrap();
assert!(is_file_copy(&path_a, &path_a_copy));
assert!(!is_file_copy(&path_a, &path_b));

依赖关系

~87KB