From d2fe260c30181b9fd73b990eef84d6f9acdc80a0 Mon Sep 17 00:00:00 2001 From: zqm Date: Wed, 8 Apr 2026 13:36:50 +0800 Subject: [PATCH] =?UTF-8?q?BootLoader=E4=B8=8B=E8=BD=BD=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Windows/CS/Framework4.0/Updater/src/main.rs | 40 ++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Windows/CS/Framework4.0/Updater/src/main.rs b/Windows/CS/Framework4.0/Updater/src/main.rs index bdf54ff..f7b1539 100644 --- a/Windows/CS/Framework4.0/Updater/src/main.rs +++ b/Windows/CS/Framework4.0/Updater/src/main.rs @@ -35,11 +35,22 @@ static DOWNLOAD_STATE: std::sync::Mutex = std::sync::Mutex::new(D }); // ===================== 版本比较与下载 ===================== +/// 获取 Updater 数据目录(X:\AppData\,存放 BootLoader.exe 等) +fn get_updater_data_dir() -> PathBuf { + let exe_path = std::env::current_exe().expect("Failed to get executable path"); + let drive = exe_path + .parent() + .and_then(|p| p.as_os_str().to_str()) + .and_then(|s| s.split('\\').next()) + .unwrap_or("C:"); + let appdata = PathBuf::from(format!("{}/AppData", drive)); + let _ = fs::create_dir_all(&appdata); + appdata +} + /// 获取本地文件版本号(使用 PowerShell 获取 PE 文件版本信息) fn get_local_file_version(filename: &str) -> String { - let exe_path = std::env::current_exe().expect("Failed to get executable path"); - let base_dir = exe_path.parent().unwrap_or(std::path::Path::new("")); - let file_path = base_dir.join(filename); + let file_path = get_updater_data_dir().join(filename); if !file_path.exists() { return "0.0.0".to_string(); @@ -141,10 +152,9 @@ fn handle_file_chunk(data: &serde_json::Map PathBuf { - let exe_path = std::env::current_exe().expect("Failed to get executable path"); - let drive = exe_path - .parent() - .and_then(|p| p.as_os_str().to_str()) - .and_then(|s| s.split('\\').next()) - .unwrap_or("C:"); - let appdata = PathBuf::from(format!("{}/AppData", drive)); - let updater_dir = appdata.join("Updater"); - let _ = fs::create_dir_all(&updater_dir); - updater_dir.join("config.json") + get_updater_data_dir().join("Updater").join("config.json") } /// 获取公共配置路径 AppData/config.json(与 BootLoader 同级)