2013-11-21 32 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(),但它們都不起作用 –