用Rust编写程序批量修改目录下的文件名

写在代码前面

现在的QQ、TIM都支持发送闪照功能,闪照只有5s的查看时间,之后会自动销毁。本着程序员的探索精神,发现TIM闪照销毁后在diskcache目录会存在缓存文件,只要将缓存文件后面加上.jpg后缀就可以正常打开了。这样等于是把闪照保存了下来。 由于diskcache目录下的缓存文件较多,总不能一个个的改,于是想到最近在学习Rust语言,就用Rust来练手,写一个批量修改目录下文件名的小工具。

Rust代码

use std::fs;
use std::path::Path;
use std::error::Error;

fn main() {
    let path = Path::new("./");
    for entry in fs::read_dir(path).expect("读取目录失败") {
        if let Ok(entry) = entry {
            let file = entry.path();
            let filename = file.to_str().unwrap();
            let new_filename = format!("{}.jpg", filename);
            match fs::rename(filename, &new_filename) {
                Err(why) => panic!("{} => {}: {}", filename, new_filename, why.description()),
                Ok(_) => println!("{} => {}", filename, new_filename),
            }
        }
    }
}

代码解读

先是通过Path::new()得到一个当前路径的实例,然后调用fs::read_dir()方法读取当前目录,再用for循环遍历。接下来就是拿到文件名,然后用format!()宏将文件名加上.jpg后缀,在用fs::rename()方法来重命名文件。

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:用Rust编写程序批量修改目录下的文件名

本文地址:https://jizhong.plus/post/2018/02/rust-file-rename.html