From 49562c3f762fb8d2950660937873258a9e3bf6c4 Mon Sep 17 00:00:00 2001 From: Youwes09 Date: Sat, 11 Apr 2026 23:04:26 -0500 Subject: [PATCH] Feat: Open in File Explorer --- src-tauri/src/lib.rs | 28 ++++++++++++++++ src/components/pages/Library.svelte | 51 +++++++++++++++++++++++++++-- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index a31372a..a97c817 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -587,6 +587,33 @@ fn restart_app(app: tauri::AppHandle) { tauri::process::restart(&app.env()); } +#[tauri::command] +fn open_path(path: String) -> Result<(), String> { + let p = std::path::Path::new(path.trim()); + #[cfg(target_os = "windows")] + { + std::process::Command::new("explorer") + .arg(p) + .spawn() + .map_err(|e| e.to_string())?; + } + #[cfg(target_os = "macos")] + { + std::process::Command::new("open") + .arg(p) + .spawn() + .map_err(|e| e.to_string())?; + } + #[cfg(not(any(target_os = "windows", target_os = "macos")))] + { + std::process::Command::new("xdg-open") + .arg(p) + .spawn() + .map_err(|e| e.to_string())?; + } + Ok(()) +} + #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { @@ -610,6 +637,7 @@ pub fn run() { list_releases, download_and_install_update, restart_app, + open_path, ]) .setup(|_app| Ok(())) .on_window_event(|window, event| { diff --git a/src/components/pages/Library.svelte b/src/components/pages/Library.svelte index 15d593d..0673493 100644 --- a/src/components/pages/Library.svelte +++ b/src/components/pages/Library.svelte @@ -1,6 +1,7 @@