針對文件的處理會出現該進程無法訪問此文件,細查原因文件處理沒有及時關閉流,這種情況會導致程文件被佔用。
看以下代碼的問題
var filePath = "word.txt";
if (!File.Exists(filePath))
{
File.Create(filePath);
}
var words = "";
using (var r = new StreamReader(filePath))
{
words = r.ReadToEnd();
Console.WriteLine(words);
}
using (var w = new StreamWriter(filePath))
{
w.WriteLine("some test words");
}
內容不多,確實有問題,關鍵是針對的 File.Create(filePath);這行代碼,雖然文件是創建了,但是創建文件返回的是FileStream,這個類型繼承於stream,所以問題就在這了。創建完成後需要做的事情是就它關閉 close(),否則一方面會造成內存泄露,同時也會如果標題一樣的結果