1. 程式人生 > >C# 判斷檔案是否存在和檔案讀寫

C# 判斷檔案是否存在和檔案讀寫

一、檔案是否存在

c#中操作IO非常簡單,下面介紹如何判斷資料夾或檔案是否存在的方法。  程式碼如下: 
//判斷資料夾是否存在,不存在則建立資料夾 
if (!System.IO.Directory.Exists(@"E:\Files")) 

   System.IO.Directory.CreateDirectory(@"E:\Files");//不存在就建立資料夾 } 
//判斷某檔案是否存在 
需要引用名稱空間using System.IO; 
if(File.Exists(@"E:\Files\test.txt")) 

//存在 

else 

//不存在 

}


二、檔案讀寫

檔案寫

class WriteTextFile
    {
        static void Main()
        {
            //如果檔案不存在,則建立;存在則覆蓋
            //該方法寫入字元陣列換行顯示
            string[] lines = { "first line", "second line", "third line","第四行" };
            System.IO.File.WriteAllLines(@"C:\testDir\test.txt", lines, Encoding.UTF8);

            //如果檔案不存在,則建立;存在則覆蓋
            string strTest = "該例子測試一個字串寫入文字檔案。";
            System.IO.File.WriteAllText(@"C:\testDir\test1.txt", strTest, Encoding.UTF8);

            //在將文字寫入檔案前,處理文字行
            //StreamWriter一個引數預設覆蓋
            //StreamWriter第二個引數為false覆蓋現有檔案,為true則把文字追加到檔案末尾
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\testDir\test2.txt",true))
            {
                foreach (string line in lines)
                {
                    if (!line.Contains("second"))
                    {
                        file.Write(line);//直接追加檔案末尾,不換行
                        file.WriteLine(line);// 直接追加檔案末尾,換行   
                    }
                }
            }
        }
    }


檔案讀

class ReadTextFile
    {
        static void Main()
        {
            //直接讀取出字串
            string text = System.IO.File.ReadAllText(@"C:\testDir\test1.txt");
            Console.WriteLine(text);

            //按行讀取為字串陣列
            string[] lines = System.IO.File.ReadAllLines(@"C:\testDir\test.txt");
            foreach (string line in lines)
            {
                Console.WriteLine(line);
            }

            //從頭到尾以流的方式讀出文字檔案
            //該方法會一行一行讀出文字
            using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\testDir\test.txt"))
            {
                string str;
                while ((str = sr.ReadLine()) != null)
                {
                    Console.WriteLine(str);
                }
            }
            Console.Read();
        }
    }


三、讀取內容string轉int等

string[] linesRead = File.ReadAllLines(@strConfigPath);

Convert.ToInt32(linesRead[0]);

to其他格式的可以轉別的資料型別

四、System.IO.IOException

msdn闡述:如果發生 I/O 錯誤(如讀寫檔案失敗),則會引發 IOException

目前遇到的問題,以上讀寫方法有的貌似不會自動關閉檔案流,手動開啟讀寫用的測試檔案後,會出現該異常

如何處理留待更新