当执行过程中出现错误后,再运行,就会出现 “文件“…..”正由另一进程使用

.Net技术 码拜 10年前 (2015-05-10) 1555次浏览 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”);

40分
Document document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
        //生成的PDF文件名称
      using( FileStream fs=new FileStream(Server.MapPath("/userPDF/" + faTitle + "(" + userid + ").pdf"), FileMode.Create))
     {
        PdfWriter.GetInstance(document, fs);
        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");
        fs.Close();
        }
        Response.Redirect("/userPDF/" + faTitle + "(" + userid + ").pdf");


FileStream 要记得关闭

这是文件被暂用了啊,用任务管理器把这个解束掉
使用using关键字包起来

不需要close

不管正常还是异常,执行结束都会关闭掉


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明当执行过程中出现错误后,再运行,就会出现 “文件“…..”正由另一进程使用
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!