From 5fdd3c33d0d6f246cc12c61141510ffae7ac58fe Mon Sep 17 00:00:00 2001 From: zqm Date: Fri, 10 Apr 2026 14:25:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=80=E4=BB=A5=E5=BA=94=E8=AF=A5=E6=AF=94?= =?UTF-8?q?=E8=BE=83=20relative=5Fpath=20=E8=80=8C=E4=B8=8D=E6=98=AF=20fil?= =?UTF-8?q?ename?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Windows/CS/Framework4.0/Updater/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Windows/CS/Framework4.0/Updater/src/main.rs b/Windows/CS/Framework4.0/Updater/src/main.rs index 0c0fc9e..6de0bbc 100644 --- a/Windows/CS/Framework4.0/Updater/src/main.rs +++ b/Windows/CS/Framework4.0/Updater/src/main.rs @@ -861,11 +861,14 @@ fn handle_app_file_chunk( let mut app_map = ctx.app_download_map.lock().unwrap(); // 获取当前正在下载的文件名(用于判断是否是新文件) + // 注意:app_map 中存储的 filename 是不含前缀的 relative_path let current_filename = app_map.values().next().map(|s| s.filename.clone()); // 新文件(非续传):清空旧 entry,等待 DownloadComplete 处理旧文件 // 续传(同一文件 + 非零 offset):追加数据,不清 entry - if current_filename.as_ref() != Some(&filename.to_string()) && (!app_map.contains_key(&key) || offset == 0) { + // 注意:current_filename 来自 app_map(不含前缀),filename 来自服务端(含前缀) + // 所以应该比较 relative_path 而不是 filename + if current_filename.as_ref() != Some(&relative_path) && (!app_map.contains_key(&key) || offset == 0) { if let Some(f) = app_map.get_mut(&key) { if let Some(file) = f.file.take() { drop(file);