【问题标题】:Opening Attachment Crashing打开附件崩溃
【发布时间】:2014-05-08 22:19:16
【问题描述】:

所以我的程序可以打开保存在数据库中的附件。打开微软文档时出现问题。如果该过程是唯一的,那么它将打开。如果它是重复的,它将崩溃。我尝试了 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");
    }
}

我想知道我可以使用另一种方法来使用我的协程吗?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您确定它不会因为文件已经存在(或仍在运行)而在保存时崩溃并且无法覆盖它吗?

    如果文件已经存在,您是否尝试过重命名文件?

    【讨论】:

    • 保存的不是太多,可能是因为他放的第一个文件仍在运行,从而阻止了他覆盖该文件?
    • @Flater - 很可能是这样
    • #Flater 所说的,Ted 这不是关于保存......它正在打开,如果文件在数据库中,我无法重命名......我将如何检查它是否已经“存在”它不是实物。它在临时路径内
    • @user3276954:我没这么说。这仍然是一个保存问题(根据我的想法),但它是由于因为您试图覆盖当前正在运行的文件(因此正在使用并锁定写入)。使用不同的文件名保存在不同的位置,或者如果要覆盖旧文件,请等到它不再使用。
    • 做一个do..while 并不断更改文件名while 它存在
    猜你喜欢
    • 2017-05-06
    • 2018-03-31
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2019-01-25
    • 2011-09-06
    相关资源
    最近更新 更多