如何在Rust中获取fs::copy操作成功的提示信息
Rust文件复制成功提示实现方案
你的代码目前仅通过expect处理了复制失败的场景,成功时无任何输出逻辑。要实现成功时打印指定提示,需要显式处理fs::copy返回的Result类型:
修改后的代码
use std::fs; use std::path::Path; fn main() { let source = "c:\\Aerocom\\win3000\\win3000.log"; let destination = "w:\\win3000r.log"; println!("C\\Aerocom\\win3000\\bestaat: {}", Path::new(source).exists()); println!("w:\\win3000r.log bestaat: {}", Path::new(destination).exists()); // 处理复制操作的结果 match fs::copy(source, destination) { Ok(_bytes_copied) => { println!("此操作顺利完成"); } Err(e) => { panic!("复制失败: {}", e); } } }
关键说明
fs::copy返回Result<u64, Error>:成功时返回复制的字节数,失败时返回错误对象- 使用
match表达式匹配两种结果:Ok(_bytes_copied):捕获成功状态,忽略字节数(用_占位),直接打印成功提示Err(e):捕获失败状态,打印具体错误信息后终止程序(也可替换为eprintln!并返回错误码,避免panic)
- 代码中冗余的
use std::fs::copy;可以删除,因为use std::fs;已包含所有fs模块下的方法
内容的提问来源于stack exchange,提问作者Chris Vermeijlen
相关产品推荐
相关产品推荐

