2013-11-21 31 views
1

我想移动文件的过程不能因为它正被另一个进程访问文件:虽然StreamReader的关闭

File.Move(fileFullPath, historyFileFullPath); 

我已经关闭之后,流读取器:

parser.Close(); 


/// <summary> 
/// closes the file stream 
/// </summary> 
public void Close() 
{ 
    streamReader.Close(); 
} 

然而,我得到的错误: 进程无法访问文件,因为它正在被另一个进程使用 任何人都可以摆脱一些光?

+0

尝试处置的StreamReader .. – Anand

+0

杠杆'using'语句像''StreamReader'对象IDisposable'工作时。他们保证妥善处置。建立它,使用它并处置它。请,请;不要分享它。 –

+0

可否请您详细说明如何做这样的事情? –

回答

2

您可以阅读关于using声明here。为StreamReader最基本的例子是:

using (var sr = new StreamReader(fileName)) 
{ 
    //use sr here without worrying 
} 
+0

不幸的是我不能使用它,因为streamReader是一个名为CreditFileParser的类的私有部分。我明白你在说什么,如果这是一个新的系统,我可能会这么做。 –

+0

'CreditFileParser'是否在任何地方处理'streamReader'? – BartoszKP

+0

它关闭它 - 我已经审查过其他解决方案后尝试过 - 也处置它,并且在关闭后也使用GC.Collect(),但它们都不起作用 –