如果pdf文件已经打开,如何显示错误消息?

时间:2015-01-21 04:32:06

标签: c# pdf

当我尝试从我的程序打开我的pdf报告时,如果pdf文件已经打开,它会显示异常,例如 “该进程无法访问文件'path。\ sample.pdf',因为它另一个进程正在使用“。 。如何显示文档已打开的消息。或者如何根据我的要求重新打开相同的打开的pdf文件?它在此行显示异常

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"F:\\reports\\" + "DepartmentPresentReport.pdf", FileMode.Create));

3 个答案:

答案 0 :(得分:1)

尝试使用try / catch来处理异常

try
{
    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"F:\\reports\\" + "DepartmentPresentReport.pdf", FileMode.Create));
}
catch (Exception e)
{
    // close already open file/ return exception
}

答案 1 :(得分:1)

您甚至可以使用FileStream

捕获异常
private bool IsFileInUse(string path, FileAccess access = FileAccess.Write)
    {
        try
        {
            using (var fs = new FileStream(path, FileMode.Open, access, FileShare.Read)) { }
        }
        catch (IOException e)
        {
            return (Marshal.GetHRForException(e) & 0xFFFF) == 32;
        }
        return false;
    }

答案 2 :(得分:0)

第一个简单的解决方案是您可以使用try catch语句打开文件并根据error message (ID)

处理错误