“正由另一进程使用,因此该进程无法访问该文件”的问题

.Net技术 码拜 9年前 (2015-05-10) 1944次浏览 0个评论

下面这段代码,有时不知怎的网页会出现 “文件“…..”正由另一进程使用,因此该进程无法访问该文件。”
请问大虾那有问题?急啊!谢谢!

Document document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
        //生成的PDF文件名称
        PdfWriter.GetInstance(document, new FileStream(Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”), FileMode.Create));
        document.Open();
        //姓名
        users model = bllname.GetModel(userid);
        string truename = “”;
        if (model.username.Trim() != “”)
        {
           truename = model.username.Trim();
        }

        document.Add(new Paragraph(“姓名:” + truename, fontTitle));
        document.Add(new Paragraph(faTitle, fontTitle));

        document.Close();
        bc.MessageBox(“文件生成成功!”, “result.aspx”);
        Response.Redirect(“/userPDF/” + faTitle + “(” + userid + “).pdf”);

程序锁定文件没有释放,资源存在访问冲突,就出这个错误了
FileStream使用完毕后要close dispose你这段代码没有关闭fs 下次访问这个文件自然会被占用
FileStream   使用之后要close,使用Disponse 标记为为无用资源。
资源没释放的问题     
PdfWriter.GetInstance(document, new FileStream(Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”), FileMode.Create));这个地方有问题,FileStream要处理下
40分
文件句柄打开和关闭要成对,
特别是异常处理时,要注意关闭
 实例化一个new FileStream流对象,然后document.Close();这句后面释放新创建的那个流对象
谢谢诸位,请问哪位能写出具体的解决代码?分全给了。谢谢!
FileStream fs  =  new FileStream(Microsoft.SqlServer.Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”)
PdfWriter.GetInstance(document, fs , FileMode.Create));

……..
document.Close();
fs.Close();
 fs.Dispose();

采用楼上代码。出现:CS1729: “System.IO.FileStream”不包含采用“1”参数的构造函数
请问该如何纠正?
FileStream fs  =PdfWriter.GetInstance(document, new FileStream(Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”), FileMode.Create));
这样呢?
看看PdfWriter.GetInstance返回值是什么类型,赋值给一个变量
按楼上的代码运行后,出现错误:

 CS1502: 与“iTextSharp.text.pdf.PdfWriter.GetInstance(iTextSharp.text.Document, System.IO.Stream, iTextSharp.text.IDocListener)”最匹配的重载方法具有一些无效参数

行 723:        PdfWriter.GetInstance(document, fs, FileMode.Create);

现在的代码是:
Document document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
        //生成的PDF文件名称
        //PdfWriter.GetInstance(document, new FileStream(Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”), FileMode.Create));
        FileStream fs = new FileStream((Server.MapPath(“/userPDF/” + faTitle + “(” + userid + “).pdf”)),FileMode.Create);
        PdfWriter.GetInstance(document, fs, FileMode.Create);
        document.Open();

按楼上的代码运行后,出现错误:
 CS1502: 与“iTextSharp.text.pdf.PdfWriter.GetInstance(iTextSharp.text.Document, System.IO.Stream, iTextSharp.text.IDocListener)”最匹配的重载方法具有一些无效参数
行 723:        PdfWriter.GetInstance(document, fs, FileMode.Create);


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明“正由另一进程使用,因此该进程无法访问该文件”的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!