我有以下代碼:文件在C#中 - 「文件是由另一個進程使用」
private void askforlocation()
{
if (File.Exists("location.txt"))
{
System.IO.StreamReader loc = new System.IO.StreamReader("location.txt");
string loca = loc.ReadToEnd();
if (loca != "")
{
int index = comboBox1.FindString(loca);
comboBox1.SelectedIndex = index;
}
else
{
label6.Text = "Please select the location!";
}
loc.Close();
}
else label6.Text = "Please select the location!";
}
它應該從文件中讀取值「位置」,並把它放到組合框,其中工程確定。
我在Form1_Load上運行這個腳本。
現在,我有另一個腳本:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string value = comboBox1.SelectedItem.ToString();
System.IO.File.WriteAllText("location.txt", value);
}
這一個應該記錄的選擇,使用戶無需每次都輸入位置。
發生了什麼是當我啓動一個程序,所以價值已經設置,然後我試圖改變它(所以理論上它應該覆蓋前一個),但我得到一個異常,說該文件已經被另一個進程使用。
我在使用它之後關閉文件。我也試過FILE.DISPOSE
。
我在做什麼錯?
重要的是要指出任何人閱讀這個答案,在「使用」塊中包裝文件讀取隱式調用Close()方法。 –
好點,我更新了我的答案。謝謝! – rsbarro