相关疑难解决方法(0)

无法访问该文件,因为它正由另一个进程使用

我的web方法在我的%temp%文件夹中创建一个pdf文件,该文件有效.然后,我想使用下面的代码向该文件添加一些自定义字段(meta).

该类PdfStamper生成一个IOException,无论我使用它的.Close()方法还是using块刚结束.仍然保留文件句柄的过程是webdev Web服务器本身(我在VS2010 SP1中进行调试).

private string AddCustomMetaData(string guid, int companyID, string filePath)
{
    try
    {
        PdfReader reader = new PdfReader(filePath);

        using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
        {
            PdfStamper st = new PdfStamper(reader, fs);
            Dictionary<string, string> info = reader.Info;
            info.Add("Guid", guid);
            info.Add("CompanyID", companyID.ToString());

            st.MoreInfo = info;
            st.Close();
        }

        reader.Close();

        return guid;
    }
    catch (Exception e)
    {
        return e.Message;
    }
}
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,它都会不断抛出异常st.Close();,更确切地说:

该进程无法访问文件'C:\ Users [我的用户名]\AppData\Local\Temp\53b96eaf-74a6-49d7-a715-6c2e866a63c3.pdf',因为它正由另一个进程使用.

要么我忽视了一些显而易见的事情,要么就是PdfStamper我还没有意识到的课程有问题.使用的itextsharp的版本是5.3.3.0和5.4.0.0,问题是相同的.

任何见解将不胜感激. …

c# asp.net itextsharp pdfstamper

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

asp.net ×1

c# ×1

itextsharp ×1

pdfstamper ×1