fix: 修复删除正在下载的任务时,被删除的任务重启后有概率又出现的问题

This commit is contained in:
lanyeeee
2025-08-22 04:46:15 +08:00
parent 2053ca439e
commit 47ce4a6a62
2 changed files with 10 additions and 6 deletions
@@ -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)?;
+2 -2
View File
@@ -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}`保存下载进度到文件失败");