当我尝试从我的程序打开我的pdf报告时,如果pdf文件已经打开,它会显示异常,例如 “该进程无法访问文件'path。\ sample.pdf',因为它另一个进程正在使用“。 。如何显示文档已打开的消息。或者如何根据我的要求重新打开相同的打开的pdf文件?它在此行显示异常
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"F:\\reports\\" + "DepartmentPresentReport.pdf", FileMode.Create));
答案 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)