1.File類
File類支持對文件的基本操作,它包括用於創建、復制、刪除、移動和打開文
的靜態方法,並協助創建FileStream對象。

2.FileInfo類
FileInfo類和File類之間許多方法調用都是相同的,但是FileInfo類沒有靜態方
法,該類中的方法僅可以用於實例化的對象。File類是靜態類,其調用需要字
符串參數為每一個方法調用規定文件位置,因此如果要在對象上進行單一方法
調用,則可以使用靜態File類。在這種情況下靜態調用速度要快一些,因為
.NET框架不必執行實例化對象並調用其方法。如果要在文件上執行幾種操
作,則實例化FileInfo對象並調用其方法更好一些,這樣會提高效率,因為對
象將在文件系統上引用正確的文件,而靜態類卻必須每次都必須尋找文件。

3.File和FileInfo實例比較
1.判斷文件是否存在
1 //File確定指定的文件是否存在。 2 public static bool Exists(string path); 3 //FileInfo獲取指示文件是否存在的值。 4 public override bool Exists { get; } 5 6 //File類 7 Console.WriteLine(File.Exists(@"D:\1\1.txt")); 8 //FileInfo類 9 FileInfo fi = new FileInfo(@"D:\1\1.txt");//創建文件對象 10 Console.WriteLine(fi.Exists);//判斷文件是否存在
2.創建文件
1 //File 創建文件 2 //path:文件名 bufferSize:用於讀取和寫入文件的已放入緩沖區的字節數 3 //options:FileOptions值之一,用於描述如何創建或改寫該文件 4 //fileSecurity:FileSecurity值之一,用於確定文件的訪問控制和審核安全性 5 public static FileStream Create(string path); 6 public static FileStream Create(string path, int bufferSize); 7 public static FileStream Create(string path, int bufferSize, FileOptions options); 8 public static FileStream Create(string path, int bufferSize, FileOptions options, FileSecurity fileSecurity); 9 //FileInfo創建文件 10 public FileStream Create(); 11 12 //File類 13 File.Create(@"D:\1.txt"); 14 //FileInfo類 15 FileInfo fi = new FileInfo(@"D:\2.txt"); 16 fi.Create();
3.復制文件
1 //File類 復制文件 2 // overwrite:如果可以覆蓋目標文件,則為 true;否則為 false。 3 public static void Copy(string sourceFileName, string destFileName); 4 public static void Copy(string sourceFileName, string destFileName, bool overwrite); 5 //FileInfo類 復制文件 6 // overwrite:如果可以覆蓋目標文件,則為 true;否則為 false。 7 public FileInfo CopyTo(string destFileName); 8 public FileInfo CopyTo(string destFileName, bool overwrite); 9 10 //File類 11 File.Copy(@"D:\1.txt", @"D:\2.txt",true); 12 //FileInfo類 13 FileInfo fi = new FileInfo(@"D:\1.txt"); 14 fi.CopyTo(@"D:\2.txt", true);
4.移動文件
1 //File類 移動文件 2 public static void Move(string sourceFileName,string destFileName) 3 //FileInfo類 移動文件 4 public void MoveTo(string destFileName) 5 // 注意:使用Move/MoveTo 方法移動現有文件時,如果源文件和目標文件是同一個文件, 6 // 將產生IOException異常 7 8 //File類 9 File.Move(@"D:\1.txt", @"D:\4.txt"); 10 //FileInfo類 11 FileInfo fi = new FileInfo(@"D:\2.txt"); 12 fi.MoveTo(@"D:\5.txt");
5.刪除文件
1 //File類 刪除文件 2 public static void Delete(string path) 3 //FileInfo類 刪除文件 4 public override void Delete() 5 6 //File類 7 File.Delete(@"D:\1.txt"); 8 //FileInfo類 9 FileInfo fi = new FileInfo(@"D:\3.txt"); 10 fi.Delete();
6.練習

1 //瀏覽事件 2 private void btnBrowse_Click(object sender, EventArgs e) 3 { 4 if(openFileDialog1.ShowDialog()==DialogResult.OK) 5 { 6 txtFile.Text = openFileDialog1.FileName; 7 FileInfo fi = new FileInfo(txtFile.Text); 8 //獲取文件創建時間 9 string strCTime = fi.CreationTime.ToString(); 10 //獲取上次訪問該文件的時間 11 string strLATime = fi.LastAccessTime.ToString(); 12 //獲取上次寫入文件的時間 13 string strLWTime = fi.LastWriteTime.ToString(); 14 //獲取文件名稱 15 string strName = fi.Name; 16 //獲取文件的完整目錄 17 string strFName = fi.FullName; 18 //獲取文件的完整路徑 19 string strDName = fi.DirectoryName; 20 //獲取文件是否只讀 21 string strIsRead = fi.IsReadOnly.ToString(); 22 //獲取文件長度 23 long fileLength = fi.Length; 24 25 MessageBox.Show($"文件信息" + System.Environment.NewLine + $"創建時間:{strCTime} 上次訪問時間{strLATime} " + System.Environment.NewLine + $"上次寫入時間{strLWTime} 文件名稱:{strName}" + System.Environment.NewLine + $"完整目錄:{strFName}" + System.Environment.NewLine + $"完整路徑:{strDName} 是否只讀:{strIsRead} 文件長度:{fileLength}"); 26 27 } 28 }