當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C# File.Copy(String, String, Boolean)用法及代碼示例

File.Copy(字符串,字符串,布爾值)是一個內置的 File 類方法,用於將現有源文件內容的內容複製到另一個目標文件(如果存在),否則創建一個新的目標文件,然後完成複製過程。
用法:

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

參數:此函數接受三個參數,如下所示:

  • sourceFileName: This is the file from where data is copied.
  • destFileName: This is the file where data is pasted.
  • overwrite: This is the boolean value. It uses true if the destination file can be overwritten otherwise it uses false.

異常:

  • UnauthorizedAccessException:destFileName 是隻讀的 OR 如果 destFileName 存在且隱藏,但源文件名未隱藏,則此處覆蓋為真。
  • ArgumentException:源文件名或 destFileName 是一個長度為零的字符串,隻包含空格,或者包含一個或多個由 InvalidPathChars 定義的無效字符。或 sourceFileName 或 destFileName 指定一個目錄。
  • ArgumentNullException:sourceFileName 或 destFileName 為空。
  • PathTooLongException:指定的路徑,文件名或兩者都超過了system-defined的最大長度。
  • DirectoryNotFoundException:源文件名或 destFileName 中指定的路徑無效(例如,它位於未映射的驅動器上)。
  • FileNotFoundException:未找到源文件名。
  • IOException:destFileName 存在且覆蓋為 false 或發生 I/O 錯誤。
  • NotSupportedException:sourceFileName 或 destFileName 的格式無效。

下麵是說明 File.Copy(String, String, Boolean) 方法的程序。
程序1:在運行以下代碼之前,創建了兩個文件,即源文件 file.txt 和目標文件 gfg.txt,其中的一些內容如下所示:



file.txt

gfg.txt

C#


// C# program to illustrate the usage
// of File.Copy() method
  
// Using System, System.IO,
// System.Text and System.Linq namespaces
using System;
using System.IO;
using System.Text;
using System.Linq;
  
class GFG {
    // Main() method
    public static void Main()
    {
        // Specifying two files
        string sourceFile = @"file.txt";
        string destinationFile = @"gfg.txt";
        try {
            // Copying source file's contents to
            // destination file
            File.Copy(sourceFile, destinationFile, true);
        }
        catch (IOException iox) {
            Console.WriteLine(iox.Message);
        }
        Console.WriteLine("Copying process has been done.");
    }
}

執行:

mcs -out:main.exe main.cs
mono main.exe
Copying process has been done.

運行上麵的代碼後,顯示上麵的輸出,目標文件內容如下所示:

gfg.txt



程序2:在運行以下代碼之前,創建了兩個文件,即源文件 file.txt 和目標文件 gfg.txt,其中一些內容如下所示:

file.txt

C#


// C# program to illustrate the usage
// of File.Copy() method
  
// Using System, System.IO,
// System.Text and System.Linq namespaces
using System;
using System.IO;
using System.Text;
using System.Linq;
  
class GFG {
    // Main() method
    public static void Main()
    {
        // Specifying two files
        string sourceFile = @"file.txt";
        string destinationFile = @"gfg.txt";
        try {
            // Copying source file's contents to
            // destination file
            File.Copy(sourceFile, destinationFile, true);
        }
        catch (IOException iox) {
            Console.WriteLine(iox.Message);
        }
        Console.WriteLine("Copying process has been done.");
    }
}

執行:

mcs -out:main.exe main.cs
mono main.exe
Copying process has been done.

運行上麵的代碼後,顯示上麵的輸出,目標文件內容被源文件 file.txt 的內容覆蓋,如下所示:

gfg.txt

程序3:在運行以下代碼之前,創建了兩個文件,即源文件 file.txt 和目標文件 gfg.txt,其中一些內容如下所示:



file.txt

file.txt

C#


// C# program to illustrate the usage
// of File.Copy() method
  
// Using System, System.IO,
// System.Text and System.Linq namespaces
using System;
using System.IO;
using System.Text;
using System.Linq;
  
class GFG {
    // Main() method
    public static void Main()
    {
        // Specifying two files
        string sourceFile = @"file.txt";
        string destinationFile = @"gfg.txt";
        try {
            // Copying source file's contents to
            // destination file
            File.Copy(sourceFile, destinationFile, false);
        }
        catch (IOException iox) {
            Console.WriteLine(iox.Message);
        }
    }
}

執行:

mcs -out:main.exe main.cs
mono main.exe
Could not create file "/home/runner/NutritiousHeavyRegression/gfg.txt". File already exists.

運行上麵的代碼後,拋出上麵的錯誤,這是因為上麵代碼中使用的布爾覆蓋值是假的。




相關用法


注:本文由純淨天空篩選整理自Kanchan_Ray大神的英文原創作品 File.Copy(String, String, Boolean) Method in C# with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。