📌  相关文章
📜  C#中的File.Copy(String,String)方法与示例

📅  最后修改于: 2021-05-29 13:36:54             🧑  作者: Mango

File.Copy(String,String)是一个内置的File类方法,用于将现有源文件内容的内容复制到此函数创建的另一个目标文件中。

句法:

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

参数:该函数接受两个参数,如下所示:

例外情况:

  • UnauthorizedAccessException:调用者没有所需的权限。
  • ArgumentException:源文件名或destFileName是长度为零的字符串,仅包含空格,或包含一个或多个由InvalidPathChars定义的无效字符。或sourceFileName或destFileName指定目录。
  • ArgumentNullException: sourceFileName或destFileName为null。
  • PathTooLongException:给定的路径,文件名或两者都超过了系统定义的最大长度。
  • DirectoryNotFoundException:源文件名或destFileName中给定的路径无效(例如,它在未映射的驱动器上)。
  • FileNotFoundException:找不到源文件名。
  • IOException: destFileName存在。或发生I / O错误。
  • NotSupportedException:源文件名或destFileName的格式无效。

下面是说明File.Copy(String,String)方法的程序。

程序1:在运行以下代码之前,仅创建了源文件file.txt ,如下所示。下面的代码本身创建一个目标文件gfg.txt并将源文件内容复制到目标文件。

file.txt

// 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()
    {
        // Creating two files
        string sourceFile = @"file.txt";
        string destinationFile = @"gfg.txt";
        try {
            // Coping source file's contents to
            // destination file
            File.Copy(sourceFile, destinationFile);
        }
        catch (IOException iox) {
            Console.WriteLine(iox.Message);
        }
        Console.WriteLine("Coping process has been done.");
    }
}

执行中:

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

运行上述代码后,将显示以上输出,并创建了一个新的目标文件gfg.txt ,如下所示:

gfg.txt

程序2:在运行下面的代码之前,将创建两个文件,其内容如下所示:

file.txt

gfg.txt

// 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 {
            // Coping source file's contents to
            // destination file
            File.Copy(sourceFile, destinationFile);
        }
        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.

运行上述代码后,由于在运行程序之前创建了目标文件,因此引发了以上错误。