using System;
using System.IO;
class ExStream
{
public static void Main(String[] args)
{
Console.WriteLine("請輸入一個文件名:");
string Filename = Console.ReadLine();
try
{
FileStream filestr = new FileStream(Filename, FileMode.OpenOrCreate);
BinaryWriter binwrt = new BinaryWriter(filestr);
for (int i = 0; i < 20; i++)
{
binwrt.Write((int)i);
}
binwrt.Close();
filestr.Close();
filestr = new FileStream(Filename, FileMode.Open, FileAccess.Read);
BinaryReader binread = new BinaryReader(filestr);
for (int i = 0; i < 20; i++)
{
Console.WriteLine(binread.ReadInt32());
binwrt.Close();
}
filestr.Close();
//文件流應要關閉
//否則下面的文件刪除操作就會出現
//"文件正由另一進程使用,因此該進程無法訪問該文件。"的錯誤提示
//我們可以將filestr.Close()刪掉或放到其他位置來試試運行結果
if (File.Exists(Filename))
{
File.Delete(Filename);
Console.WriteLine("成功執行文件刪除");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
//心得:解決"文件正由另一進程使用,因此該進程無法訪問該文件。"的錯誤,
//我們可以從“我是否將之前所有操作這個文件的流都Close()了”這個角度來思考。
//以上只是一個簡單的文件處理示例,在ASP.NET中三層模式中用上面的思維來解決問題也是很可行的。
using System.IO;
class ExStream
{
public static void Main(String[] args)
{
Console.WriteLine("請輸入一個文件名:");
string Filename = Console.ReadLine();
try
{
FileStream filestr = new FileStream(Filename, FileMode.OpenOrCreate);
BinaryWriter binwrt = new BinaryWriter(filestr);
for (int i = 0; i < 20; i++)
{
binwrt.Write((int)i);
}
binwrt.Close();
filestr.Close();
filestr = new FileStream(Filename, FileMode.Open, FileAccess.Read);
BinaryReader binread = new BinaryReader(filestr);
for (int i = 0; i < 20; i++)
{
Console.WriteLine(binread.ReadInt32());
binwrt.Close();
}
filestr.Close();
//文件流應要關閉
//否則下面的文件刪除操作就會出現
//"文件正由另一進程使用,因此該進程無法訪問該文件。"的錯誤提示
//我們可以將filestr.Close()刪掉或放到其他位置來試試運行結果
if (File.Exists(Filename))
{
File.Delete(Filename);
Console.WriteLine("成功執行文件刪除");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
//心得:解決"文件正由另一進程使用,因此該進程無法訪問該文件。"的錯誤,
//我們可以從“我是否將之前所有操作這個文件的流都Close()了”這個角度來思考。
//以上只是一個簡單的文件處理示例,在ASP.NET中三層模式中用上面的思維來解決問題也是很可行的。