1. 程式人生 > >C# IO 隨筆

C# IO 隨筆

基本 tex nor 文件的 c# reat col 信息 並集

File類

1.用File.Create創建文件,會返回一個FileStream對象,如果不關閉這個對象,無法用File.AppendAllText追加文本

  報錯示例:

   File.Create("D://a.txt");
   File.AppendAllText("D://a.txt", "你好");

  正確示例:

   FileStream fs = File.Create("D://a.txt");

   fs.Close();

   File.AppendAllText("D://a.txt", "你好");

2.File.Copy如果目標文件存在,會報錯,可以將第二個參數設置為True,覆蓋文件

3.File.Move如果目標文件存在,會報錯,無法進行替換操作

4.File.CreateText跟File.Create情況類似,會返回一個StreamWriter對象 , StreamWriter用法在後面會說到

5.File.OpenRead 和 File.OpenWrite 分別返回 只讀的FileStream對象和 只寫的FileStream對象

6.File.Replace 使用其他文件的內容替換指定文件的內容,這一過程將刪除原始文件,並創建被替換文件的備份

  示例:

    File.Replace("D://a.txt", "D://b.txt", "D://b-backup.txt");

    將文本b.txt的內容,替換成a.txt的內容,刪除b.txt,並建立b的備份文件b-backup.txt

FileInfo類

FileInfo用來表示文件的基本信息 , 同時他還有File類的一些方法

1.Attributes 使用FileAttributes枚舉,獲取或設置當前文件或目錄的特性

2.Extension 獲取文件擴展名,只讀屬性

3.FullName 文件完整路徑(包含文件名),只讀

4.Name 文件名稱(帶擴展名)

5.Directory 包含當前文件的目錄,DirectoryInfo對象,只讀屬性

6.DirectoryName 文件完整路徑(不包含文件名),只讀

File類與FileInfo類的選擇(個人理解 , 勿噴)

  • 快速操作文件用File。
  • 想用更多的方法、屬性,用FileInfo。

Directory類

1.Directory.CreateDirectory 創建目錄並返回一個DirectoryInfo對象

2.Directory.GetDirectories 返回子目錄的數組

3.Directory.GetDirectoryRoot 返回磁盤根目錄(如 D:/)

4.Directory.GetFiles 返回指定目錄下所有文件的名稱數組

5.Directory.GetFileSystemEntries 返回指定目錄下 , 文件和目錄名稱的數組,相當於 Directory.GetDirectories 和 Directory.GetFiles的並集

6.EnumerateDirectories , EnumerateFiles ,EnumerateFilesSystemEntries 相當於2,4,5的3個方法,返回IEnumerable<string>集合,性能比較好

DirectoryInfo類

包含的是Directory的一些基本信息

FileStream類

1.使用示例(最常用的)

  FileStream fs = new FileStream("D://a.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);

  文本讀取

  實例化並打開了一個數據流對象

  int _length = (int)fs.Length;

  byte[] data = new byte[_length ];

  聲明一個跟數據流對象同樣長度的byte數組

  fs.Read(data,0,_length);

  將數據流對象讀取到byte數組內

  string str = System.Text.Encoding.Default.GetString(data);

  將byte數組轉換成文本

  fs.Flush();

  fs.Close();

  釋放

  文本寫入

  byte[] b = Encoding.Default.GetBytes("你好");

  將文本轉換成byte數組

  fs.Write(b, 0, b.Length);

  寫入

  fs.Flush();

  fs.Close();

  釋放

  未完待續~~~~~~~~~~~~~~~~~~~~~~

  

  

C# IO 隨筆