diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ec6615..e1670f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,3 +57,7 @@ - 重新进度条支持!美观了不少啊 ### Refactoring - :hammer: 重构大量代码! + +## [2.6.11] - 2025.3.15 +### Features :sparkles: +- 更新自动打开文件夹选项,当解密结束后自动调用文件管理器打开输出目录 \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 902da35..5387c94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -811,7 +811,7 @@ checksum = "07dcca13d1740c0a665f77104803360da0bdb3323ecce2e93fa2c959a6d52806" [[package]] name = "ncmmiao" -version = "2.5.11" +version = "2.6.11" dependencies = [ "aes", "audiotags", diff --git a/Cargo.toml b/Cargo.toml index 2959682..9f89623 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ncmmiao" -version = "2.5.11" +version = "2.6.11" edition = "2021" authors = ["Lkhsss "] description = "A magic tool convert ncm to flac" diff --git a/README.md b/README.md index 6d8a317..59fa649 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ # NcmMiao :tada: [![build](https://github.com/Lkhsss/NcmMiao/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/Lkhsss/NcmMiao/actions/workflows/build.yml) -一个使用Rust语言编写的ncm文件解密工具(第一!😆)。 +一个使用Rust语言编写的ncm文件解密工具😆。 ### 功能及特点 - 支持单一文件,多文件夹递归批量解密。 - 完善的日志功能 - Colorful - 编译文件小,解密快 - - [New!]支持自动添加封面! + - 支持自动添加封面! + - 自动打开输出文件夹 + - 简约美观 ## 编译 ``` diff --git a/src/clap.rs b/src/clap.rs index e2a1b64..d34d3af 100644 --- a/src/clap.rs +++ b/src/clap.rs @@ -19,4 +19,8 @@ pub struct Cli { /// 强制覆盖保存开关 #[arg(short, long, name = "强制覆盖开关")] pub forcesave: bool, + + /// 自动打开输出目录 + #[arg(short,long,name="自动打开输出目录")] + pub autoopen:bool, } diff --git a/src/main.rs b/src/main.rs index 1e5ad24..20a5982 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,6 +19,7 @@ mod ncmdump; mod pathparse; mod test; mod threadpool; +mod opendir; use ncmdump::Ncmfile; const DEFAULT_MAXWORKER:usize = 8; @@ -118,7 +119,14 @@ fn main() { successful.to_string().bright_green(), (taskcount - successful).to_string().bright_red(), showtime() - ) + ); + + // 自动打开输出文件夹 + if cli.autoopen{ + opendir::opendir(outputdir.into()); + }; + + } lazy_static! { diff --git a/src/opendir.rs b/src/opendir.rs new file mode 100644 index 0000000..0ce2277 --- /dev/null +++ b/src/opendir.rs @@ -0,0 +1,34 @@ +use log::error; +use std::{path::PathBuf, process::Command}; + +#[cfg(target_os = "windows")] +pub fn opendir(dir: PathBuf) { + match Command::new("explorer") + .arg(&dir) // <- Specify the directory you'd like to open. + .spawn() + { + Err(_) => error!("无法打开输出文件夹:[{}]", dir.display()), + _ => (), + } +} + +#[cfg(target_os = "linux")] +pub fn opendir(dir: PathBuf) { + match Command::new("open") + .arg(&dir) // <- Specify the directory you'd like to open. + .spawn() + { + Err(_) => error!("无法打开输出文件夹:[{}]", dir.display()), + _ => (), + } +} +#[cfg(target_os = "macos")] +pub fn opendir(dir: PathBuf) { + match Command::new("open") + .arg(&dir) // <- Specify the directory you'd like to open. + .spawn() + { + Err(_) => error!("无法打开输出文件夹:[{}]", dir.display()), + _ => (), + } +}