7 个版本
0.1.6 | 2023 年 1 月 6 日 |
---|---|
0.1.5 | 2022 年 12 月 26 日 |
#14 in #file-copy
34 每月下载量
用于 mmt
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 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确说明,否则根据 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