2014-05-08 44 views
0

所以我的程序可以打開保存到數據庫的附件。它在打開微軟文檔時遇到問題。如果這個過程是獨特的,那麼它就會打開。如果是重複,它會崩潰。我嘗試了try/catch,但我使用協程來顯示錯誤消息,並且try/catch不允許Yield返回。開幕附件崩潰

我已經試過:

public IEnumerable<IResult> OpenAttachment() 
{ 
    FolderBrowserDialog sfg = new FolderBrowserDialog(); 
    string path = sfg.SelectedPath; 
    byte[] bytes = AttachmentSelectedItem.FileArray; 
    string Name = AttachmentSelectedItem.FileName; 
    try 
    { 
     System.IO.File.WriteAllBytes(Path.GetTempPath() + "\\" + Name, bytes); 
     Process.Start(Path.GetTempPath() + "\\" + Name); 
     yield return ErrorView.Show("File Is Uploaded"); 
    } 
    catch 
    { 
     yield return ErrorView.Show("Please close Existing File"); 
    } 
} 

我想知道是否有另一種方法,我可以用這將允許我使用我的協程?

回答

0

你確定它沒有在保存時崩潰,因爲文件已經存在(或仍在運行)並且不能覆蓋它嗎?

你有沒有嘗試重命名文件,如果它已經存在?

+2

沒有太多的保存,因爲他放在那裏的第一個文件仍然是一個正在運行的進程,從而阻止他覆蓋該文件? – Flater

+0

@Flater - 很可能是這樣的 – Ted

+0

#Flater說什麼,泰德它不是關於保存.....它是開放的,我不能重命名該文件,如果它在數據庫.... ....我將如何檢查如果它已經「存在」,它不是一個物理項目。它在臨時路徑 – Master