C#File類和FileInfo類


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         }

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM