2011-09-02 402 views
-1

可能重複另一個進程:
Cant Access File because it is being used by another process該進程無法訪問該文件,因爲它正在由

using (StreamWriter _SelectedFile = File.CreateText(CConstant.m_TEMPFILEPATH)) 
{ 
    _SelectedFile.WriteLine(CConstant.m_SaveFileDefaultDirectory); 
    _SelectedFile.WriteLine(CConstant.Tempfile_ECUSelected); 
    _SelectedFile.WriteLine(CConstant.Tempfile_inifile); 
    _SelectedFile.WriteLine(CConstant.Tempfile_mapfile); 
    _SelectedFile.Flush(); 
    _SelectedFile.Close(); 
    _SelectedFile.Dispose(); 
} 

當運行代碼時,第一次當我運行代碼(沒有temp.txt文件)時,它會拋出一個異常「進程無法訪問該文件,因爲它正在被另一個進程使用」。請提出解決方案,並且在編寫代碼時出現了什麼問題這樣的代碼?

+7

您不需要.Flush,.Close和.Dispose。所有這些將在您離開使用範圍時自動完成。現在你說沒有第一次存在的temp.txt文件,但你會得到一個異常說明該文件被另一個進程使用。那它是什麼? –

+0

代碼沒有問題(除了Flush/Close/Dispose序列無用)。錯誤信息是非常清楚的:另一個進程已經在使用該文件,所以你不能寫入它 –

+0

@Darin Dimitrov:是的..第一次,當我運行代碼..沒有這樣的文件存在。仍然會彈出一個例外。 – Kritika

回答

2

無法使用FileMode.OpenOrCreate選項創建FileStream嗎?而不是文件?

0

使用(StreamWriter的SW =新的StreamWriter(CConstant.m_TEMPFILEPATH,真))

替換的上的代碼的代碼,並對其進行測試,也是同樣的結果?

相關問題