C# 檔案複製程式


簡介

C# 是一種高階語言,可以滿足程式設計師的廣泛需求。它也可以幫助複製檔案。因此,在本文中,我們將學習一個 C# 檔案複製程式。眾所周知,檔案複製屬於檔案處理的範疇。因此,在我們繼續之前,讓我們回顧一下檔案處理的定義。

檔案處理或檔案管理,簡單來說,就是各種處理過程,例如建立檔案、從中讀取、向其中寫入、追加等等。檔案的讀取和寫入是檔案處理中最常見的兩種操作。

複製的必要性和方法

複製檔案是計算機中一項非常重要的功能。各種語言都提供了這個功能,C# 也不例外。很多時候,使用者想要建立一個新檔案,其中包含舊檔案中相同的資料,然後向其中新增一些內容。如果使用者先寫入舊資料,然後再新增一些內容,則會花費大量時間。如果使用者可以簡單地將現有檔案資料複製到新檔案,然後新增一些內容,為什麼還要這樣做呢?因此,在這些棘手的情況下,複製檔案非常有用。檔案可以透過終端複製。要複製檔案,可以使用 Copy(String, String) 方法。

Copy(String, String)

此方法用於將現有檔案複製到新檔案。完整的檔案資料將複製到新檔案。以下是 copy(string, string) 方法的語法。

public static void Copy (string sourceFileName, string destFileName); 

此方法禁止使用者覆蓋同名檔案。這裡有兩個字串引數。第一個字串獲取要複製的原始檔名。第二個字串是目標檔名,即將原始檔資料複製到的檔名。由於存在一個約束條件,即此目標檔名既不能是目錄,也不能是現有檔案。

此方法會丟擲多個異常。例如,當用戶的程式碼沒有訪問所需的許可權時,會發生 UnauthorizedAccessException 異常。當原始檔名或目標檔名包含一個或多個無效字元、只有空格,或者地址指定目錄時,該異常稱為 ArgumentException。當原始檔名或目標檔名為空時,會發生 ArgumentNullException 異常。

另一個 DirectoryNotFoundException 異常發生在原始檔名或目標檔名中提供的路徑不正確時。

PathTooLongException 異常發生在給定的路徑、檔名或兩者都超過系統設定的最大長度時。

如果找不到原始檔,則會丟擲 FileNotFoundException 異常。現在我們知道此方法禁止使用者覆蓋同名檔案。因此,當用戶嘗試這樣做時,會丟擲 IOException 異常(因為目標檔案已存在)或任何 I/O 錯誤。如果原始檔名或目標檔名格式無效,則會丟擲 NotSupportedException 異常。

現在讓我們討論演算法

演算法

使用此演算法,我們可以將原始檔複製到目標檔案。使用 File.Copy() 方法

步驟 1  宣告字串變數以儲存檔案的地址。

步驟 2  使用 File.Copy() 將內容從現有檔案複製到新檔案。

步驟 3 −  捕獲丟擲的異常的程式碼行。

步驟 4  檔案複製完成後顯示成功訊息。

示例

// A C# program for copying a file
//File.Copy() is used to copy the source file to the destination file
using System;
using System.IO;
using System.Text;
using System.Linq;
class ttpt {

   public static void Main() {
      // Address of both the files
      string OriginalFile = @"D:\source.txt";
      string FinalFile = @"D:\final.txt";
      try {
         // Method used to copy an existing file into a new file.
         File.Copy(OriginalFile, FinalFile);
      }
      catch (IOException iox) {
         // Exception message catching box
         Console.WriteLine(iox.Message);
      }
      Console.WriteLine("Copying of contents from source to destination file is completed") ;
   }
}

輸出

Copying of contents from source to destination file is completed 

現在,如果使用者使用第三個引數(布林引數,值為 true 或 false)過載 File.Copy() 方法的語法,則此方法就可以在目標檔名已存在的情況下覆蓋檔案。

過載 File.Copy(String, String, Boolean)

此方法用於將現有檔案複製到新檔案。完整的檔案資料將複製到新檔案。以下是 copy(string, string, bool overwrite) 方法的語法。

public static void Copy (string sourceFileName, string destFileName, bool overwrite); 

過載為 true 後,此方法允許使用者覆蓋同名檔案。

此方法會丟擲多個異常。例如,當用戶的程式碼沒有訪問所需的許可權時,會發生 UnauthorizedAccessException 異常。當原始檔名或目標檔名包含一個或多個無效字元、只有空格,或者地址指定目錄時,該異常稱為 ArgumentException。當原始檔名或目標檔名為空時,會發生 ArgumentNullException 異常。

另一個 DirectoryNotFoundException 異常發生在原始檔名或目標檔名中提供的路徑不正確時。

PathTooLongException 異常發生在給定的路徑、檔名或兩者都超過系統設定的最大長度時。

如果找不到原始檔,則會丟擲 FileNotFoundException 異常。

只有當發生 I/O 錯誤或過載的覆蓋部分為 false 且目標檔案已存在時,才會丟擲 IOException 異常。

現在讓我們討論演算法

演算法

使用此演算法,我們可以將原始檔複製到目標檔案。使用 File.Copy() 方法。

步驟 1 − 宣告字串變數以儲存檔案的地址。

步驟 2  使用過載為 true 的 File.Copy() 將內容從現有檔案複製到新檔案。

步驟 3  捕獲丟擲的異常的程式碼行。

步驟 4  檔案複製完成後顯示成功訊息。

示例

// A C# program for copying a file
//File.Copy() is used to copy the source file to the destination file
using System;
using System.IO;
using System.Text;
using System.Linq;
class ttpt {

   public static void Main() {
      // Address of both the files
      string OriginalFile = @"D:\source.txt";
      string FinalFile = @"D:\final.txt";
      try {
         // Method used to copy an existing file into a new file.
         
         // By this if final already exists then it will be overwritten
         File.Copy(OriginalFile, FinalFile, true);
      }
      catch (IOException iox){
         // Exception message catching box 
         Console.WriteLine(iox.Message);
      }
      Console.WriteLine("Copying of contents from source to destination file is completed") ;
   }
}

輸出

Copying of contents from source to destination file is completed 

結論

因此,本文到此結束。在本文中,我們討論了 C# 檔案複製程式。我們以常規方式和過載方式使用了 File.Copy() 方法。我們討論了它們的語法、異常和演算法。然後我們看到了程式碼,並以此結束了本文。

希望本文能增強您對 C# 的瞭解。

更新於:2023年4月21日

瀏覽量:346

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.