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

📅  最后修改于: 2021-05-29 18:44:47             🧑  作者: Mango

File.Copy(String,String,Boolean)是一个内置的File类方法,用于将现有源文件内容的内容复制到另一个目标文件(如果存在),否则创建一个新的目标文件,然后完成复制过程。
句法:

参数:此函数接受三个参数,如下所示:

例外情况:

  • UnauthorizedAccessException: destFileName是只读的,或者如果destFileName存在并且被隐藏,但是源文件名未被隐藏,则覆盖为true。
  • ArgumentException:源文件名或destFileName是长度为零的字符串,仅包含空格,或包含一个或多个由InvalidPathChars定义的无效字符。或sourceFileName或destFileName指定目录。
  • ArgumentNullException: sourceFileName或destFileName为null。
  • PathTooLongException:指定的路径,文件名或两者都超过系统定义的最大长度。
  • 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.");
    }
}


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.");
    }
}


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
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.

运行上面的代码后,引发以上错误,这是因为上面代码中使用的布尔覆盖值是false