2014-02-18 49 views
1

我有一个pdf文件,我试图读取和写入文本文件在C#中使用itext.Now我已经创建一个文本文件,并试图我的PDF值写入到它,但它是给下面的错误..该进程无法访问文件'D:.txt',因为它正在被另一个进程在c#中使用

该进程无法访问该文件“d:\ 9008028901.txt”,因为它正由另一个进程使用。

这是我在C#代码..

public bool ExtractText(string inFileName, string outFileName) 
{ 
    StreamWriter outFile = null; 
    try 
    { 
     // Create a reader for the given PDF file 
     PdfReader reader = new PdfReader(inFileName); 
     outFile = File.CreateText(outFileName); 

     outFile = new StreamWriter(outFileName, false, System.Text.Encoding.UTF8); 

在这里,在我的代码文本文件越来越创建,但我是个不能写在it.My文本文件中的任何事情是空白。 请帮我..

+0

由于错误消息一直存在,对于*开发者*来说,这是一个更令人讨厌的问题,因为如果它在编写新代码时出现,它几乎总是实际上是你自己的代码在你自己的过程中被打开的情况。 –

回答

4

File.CreateText方法返回一个StreamWriter保持打开文件的对象。这没有关闭,然后尝试再次使用new StreamWriter调用打开文件,因此会遇到正在使用的文件错误。为了解决这个问题,你需要关闭第一StreamWriter

outFile = File.CreateText(outFileName); 
outFile.Close(); 
outFile = new StreamWriter(outFileName, false, System.Text.Encoding.UTF8); 

总体而言,这似乎有点浪费。这将是更有效的,只是创建StreamWriter实例一次

outFile = new StreamWriter(outFile, false, System.Text.Encoding.UTF8); 

File.CreateText方法似乎是不必要在这里。如果该文件不存在StreamWriter将会创建它

+0

非常感谢Sir! – Adi

相关问题