原代碼如下:
static void Main(string[] args)
{
Directory.CreateDirectory(@"d:\ok");
File.Create(@"d:\ok\abc.txt");
string str = "sve";
FileStream fs = null;
try
{
//1、創建文件流(字節流)
using (fs = new FileStream(@"d:\ok\abc.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] bytes = Encoding.Default.GetBytes(str);
//2、寫操作
fs.Write(bytes, 0, bytes.Length);
fs.Flush();//清空流
Console.WriteLine("寫入成功!");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
//3、關閉流
fs.Close();
}
}
上面執行會出錯:文件“d:\ok\abc.txt”正由另一進程使用,因此該進程無法訪問該文件
原因:File.Create(@"d:\ok\abc.txt");這句代碼會返回一個FileStream流與該文件鏈接,因此被占用。
解決方法:將上面的代碼改為File.Create(@"d:\ok\abc.txt").Close();即可解決