From 47ce4a6a621af042cab4c36b2aa054daabacd97d Mon Sep 17 00:00:00 2001 From: lanyeeee Date: Fri, 22 Aug 2025 04:46:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E4=B8=8B=E8=BD=BD=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E8=A2=AB=E5=88=A0=E9=99=A4=E7=9A=84=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=87=8D=E5=90=AF=E5=90=8E=E6=9C=89=E6=A6=82=E7=8E=87?= =?UTF-8?q?=E5=8F=88=E5=87=BA=E7=8E=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/downloader/download_progress.rs | 12 ++++++++---- src-tauri/src/downloader/download_task.rs | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/downloader/download_progress.rs b/src-tauri/src/downloader/download_progress.rs index ad1f31e..8df41ee 100644 --- a/src-tauri/src/downloader/download_progress.rs +++ b/src-tauri/src/downloader/download_progress.rs @@ -297,15 +297,19 @@ impl DownloadProgress { } } - pub fn save(&self, app: &AppHandle) -> anyhow::Result<()> { + pub fn save(&self, app: &AppHandle, allow_create: bool) -> anyhow::Result<()> { let progress = self.clone(); let file_name = format!("{}.json", progress.task_id); let app_data_dir = app.path().app_data_dir()?; - let task_dir = app_data_dir.join(".下载任务"); - std::fs::create_dir_all(&task_dir)?; + let tasks_dir = app_data_dir.join(".下载任务"); + std::fs::create_dir_all(&tasks_dir)?; + + let save_path = tasks_dir.join(file_name); + if !allow_create && !save_path.exists() { + return Ok(()); + } - let save_path = task_dir.join(file_name); let progress_json = serde_json::to_string(&progress)?; std::fs::write(save_path, progress_json)?; diff --git a/src-tauri/src/downloader/download_task.rs b/src-tauri/src/downloader/download_task.rs index 79bf91c..cd2bec1 100644 --- a/src-tauri/src/downloader/download_task.rs +++ b/src-tauri/src/downloader/download_task.rs @@ -103,7 +103,7 @@ impl DownloadTask { let mut tasks = Vec::new(); for progress in progresses { - if let Err(err) = progress.save(app) { + if let Err(err) = progress.save(app, true) { let ids_string = progress.get_ids_string(); let episode_title = &progress.episode_title; let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败"); @@ -1032,7 +1032,7 @@ impl DownloadTask { } .emit(&self.app); - if let Err(err) = updated_progress.save(&self.app) { + if let Err(err) = updated_progress.save(&self.app, false) { let ids_string = updated_progress.get_ids_string(); let episode_title = &updated_progress.episode_title; let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败");