none
在一个方法中用到两个文件,该方法用完后,如何关闭这两个文件,因为别的方法也需要用到 RRS feed

  • 问题

  • private void button4_Click(object sender, EventArgs e)    

    if (File.Exists(temppdf))
                    {
                        File.Delete(temppdf);-------------此处删除掉一个本地文件,但是这个文件在合并PDF文档中
                    }
       未关闭,请问该怎么做,才能关闭掉
       String[] files = { temppdf, fn };//本地两个PDF文件
     
       String savepath = "省略";

    //合并PDF文档----------------------------------此处用到2个文件,该方法用完后,如何关闭这两个本地文件
    public void mergePdfFiles(string[] files, string savepath)
            {
                Document document = new Document(new PdfReader(files[0]).GetPageSize(1));
                PdfCopy copy = new PdfCopy(document, new FileStream(savepath, FileMode.Create));
                document.Open();
                for (int i = 0; i < files.Length; i++)
                {
                    PdfReader reader = new PdfReader(files[i]);

                    int n = reader.NumberOfPages;
                    for (int j = 1; j <= n; j++)
                    {
                        document.NewPage();
                        PdfImportedPage page = copy.GetImportedPage(reader, j);
                        copy.AddPage(page);
                    }
                }
               
                document.Close();
             
                document.Dispose();
              
               
               
                MessageBox.Show("恭喜你,创建电子料的PDF文档成功,请在桌面上查找");
               
                return;
                 
               
            }

    2014年6月6日 0:50

答案

  • 不知道 Document,PdfCopy,PdfReader 是啥,鉴于你的代码中多次涉及读取磁盘文件,你应该看下相关的开发文档,看看文档中是如何描述这几个类的使用的。比如创建 PdfReader 后,是否需要显示调用 PdfReader.Close 释放资源,又比如创建 PdfCopy 时,是否需要显示关闭 FileStream。

    • 已标记为答案 smile.bo 2014年6月6日 1:42
    2014年6月6日 1:06

全部回复

  • 不知道 Document,PdfCopy,PdfReader 是啥,鉴于你的代码中多次涉及读取磁盘文件,你应该看下相关的开发文档,看看文档中是如何描述这几个类的使用的。比如创建 PdfReader 后,是否需要显示调用 PdfReader.Close 释放资源,又比如创建 PdfCopy 时,是否需要显示关闭 FileStream。

    • 已标记为答案 smile.bo 2014年6月6日 1:42
    2014年6月6日 1:06
  • 这段代码是网上COPY出来的,就是合并两个PDF文档,当我合并完后,发现合并的本地文件一直被使用,不知道怎么关闭,但是我已经用完这个方法啦

    2014年6月6日 1:38
  • 谢谢你提醒了我,我已经调试出来了,就是让Document,PdfCopy,PdfReader 释放资源。
    2014年6月6日 1:42