diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo index 7097101..34196cc 100644 Binary files a/.vs/AIProofread/v17/.suo and b/.vs/AIProofread/v17/.suo differ diff --git a/AIProofread/Bridge.cs b/AIProofread/Bridge.cs index f078c38..35f81c5 100644 --- a/AIProofread/Bridge.cs +++ b/AIProofread/Bridge.cs @@ -329,7 +329,7 @@ namespace AIProofread /// /// /// - public void CheckInTrackRevisions(string message,int documentId, string callbackId) + public void CheckInTrackRevisions(string message, int documentId, string callbackId) { var doc = documentId > 0 ? Globals.ThisAddIn.GetDocumentById(documentId) : Globals.ThisAddIn.ActiveDocument; @@ -789,17 +789,45 @@ namespace AIProofread } // 保存文件 - public string WriteText(string content, string path) + public void WriteText(string content, string filename, string callbackId) { - try + Globals.ThisAddIn.ActiveDocument.RunInMainThread(() => { - File.WriteAllText(path, content); - return BridgeResult.Success("ok"); - } - catch (Exception ex) - { - return BridgeResult.Error(-1, ex.Message); - } + var json = JSONObject.Create(); + try + { + string currentName = Globals.ThisAddIn.Application.ActiveDocument.Name; + // 去掉文件名后缀 + currentName = currentName.Substring(0, currentName.LastIndexOf(".")); + SaveFileDialog sfd = new SaveFileDialog + { + // 设置默认文件名 + FileName = filename, + Filter = "文本文件|*.txt" + }; + + var result = sfd.ShowDialog(); + // 如果用户取消选择,则返回 + if (result != DialogResult.Cancel) + { + if (File.Exists(sfd.FileName)) + { + File.Delete(sfd.FileName); + } + File.WriteAllText(sfd.FileName, content); + json.Put("status", "success"); + } + } + catch (Exception ex) + { + json.Put("status", "error").Put("message", ex.Message); + } + Globals.ThisAddIn.GlobalCallback( + callbackId, + json.ToString() + ); + }); + // } ///