/// <summary> /// 移動圖片資料夾,從原來的wwwroot/graphics資料夾轉移到Picture資料夾 ///轉移完畢刪除原來的graphics資料夾 /// </summary> public void MoveGraphicsFolder() { try { // 定義原始檔夾路徑 string sourcePath = Path.Combine("wwwroot", "graphics"); // 定義目標資料夾路徑 string targetPath = "Picture"; // 如果目標資料夾已存在,則刪除它 string destinationGraphicsPath = Path.Combine(targetPath, "graphics"); if (!Directory.Exists(destinationGraphicsPath)) { Directory.CreateDirectory(destinationGraphicsPath); } // 確保目標目錄存在,如果不存在則建立 if (!Directory.Exists(targetPath)) { Directory.CreateDirectory(targetPath); } // 獲取源目錄和目標目錄中的所有檔案 string[] sourceFiles = Directory.GetFiles(sourcePath, "*", SearchOption.AllDirectories); string[] targetFiles = Directory.GetFiles(destinationGraphicsPath, "*", SearchOption.AllDirectories); // 建立目標目錄中不存在的目錄 foreach (string sourceFile in sourceFiles) { string relativePath = Path.GetRelativePath(sourcePath, sourceFile); string targetFile = Path.Combine(destinationGraphicsPath, relativePath); string targetDirectory = Path.GetDirectoryName(targetFile)!; if (!Directory.Exists(targetDirectory)) { Directory.CreateDirectory(targetDirectory); } } // 處理每一個檔案 foreach (string sourceFile in sourceFiles) { string relativePath = Path.GetRelativePath(sourcePath, sourceFile); string targetFile = Path.Combine(destinationGraphicsPath, relativePath); // 如果目標目錄中已存在相同路徑的檔案,則進行覆蓋 if (Array.Exists(targetFiles, f => string.Equals(f, targetFile, StringComparison.OrdinalIgnoreCase))) { File.Copy(sourceFile, targetFile, true); } // 如果目標目錄中不存在相同路徑的檔案,則進行復制 else { File.Move(sourceFile, targetFile); } } // 刪除源目錄 Directory.Delete(sourcePath, true); } catch (Exception) { throw; } }