From c63da5222e8d39cd8f3279c2a4a9a3f5b4792c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Wed, 22 Mar 2023 09:25:21 +0800 Subject: [PATCH] =?UTF-8?q?enhance(fs):=E4=BC=98=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E6=89=AB=E6=8F=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/commands/files.rs | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src-tauri/src/commands/files.rs b/src-tauri/src/commands/files.rs index bf58a5f..7ce6d67 100644 --- a/src-tauri/src/commands/files.rs +++ b/src-tauri/src/commands/files.rs @@ -48,8 +48,12 @@ pub async fn scan_directory(target: String) -> Result, String> { if !entry.path().is_file() { continue; } - let (width, height) = image::image_dimensions(entry.path()) - .map_err(|_e| format!("读取图片文件 {} 元信息失败。", entry.path().display()))?; + let image_detect_result = image::image_dimensions(entry.path()); + if image_detect_result.is_err() { + println!("读取图片文件 {} 元信息失败。", entry.path().display()); + continue; + } + let (width, height) = image_detect_result.unwrap(); let file_hash_id = entry .path() .to_str() @@ -60,20 +64,27 @@ pub async fn scan_directory(target: String) -> Result, String> { let filename = entry .path() .file_name() - .ok_or(String::from("不能获取到文件名。"))? - .to_owned() - .into_string() - .unwrap(); + .ok_or(String::from("不能获取到文件名。")) + .map(ToOwned::to_owned) + .map(|s| s.into_string().unwrap()); + if filename.is_err() { + println!("不能获取到文件 {} 文件名。", entry.path().display()); + continue; + } let path = entry .path() .clone() .to_str() - .ok_or(String::from("不能获取到文件路径。"))? - .to_string(); + .ok_or(String::from("不能获取到文件路径。")) + .map(ToString::to_string); + if path.is_err() { + println!("不能获取到文件 {} 路径。", entry.path().display()); + continue; + } file_items.push(FileItem { id: file_hash_id, - filename, - path, + filename: filename.unwrap(), + path: path.unwrap(), height, width, });