C#關於"該進程無法訪問文件,因爲該文件正由另一進程使用"的錯誤的一點心得(示例)

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中三層模式中用上面的思維來解決問題也是很可行的。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章