C# 判斷檔案是否存在和檔案讀寫
阿新 • • 發佈:2019-01-07
一、檔案是否存在
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。
目前遇到的問題,以上讀寫方法有的貌似不會自動關閉檔案流,手動開啟讀寫用的測試檔案後,會出現該異常
如何處理留待更新