File.Replace 方法

定义

将指定文件的内容替换为另一个文件的内容、删除原始文件以及创建已替换文件的备份。

重载

Replace(String, String, String)

将指定文件的内容替换为另一个文件的内容,删除原始文件并创建已替换文件的备份。

Replace(String, String, String, Boolean)

将指定文件的内容替换为另一个文件的内容,删除原始文件并创建已替换文件的备份,并选择性地忽略合并错误。

注解

Replace 方法将指定文件的内容替换为另一个文件的内容。 它们还会创建已替换的文件的备份。

Replace(String, String, String)

Source:
File.cs
Source:
File.cs
Source:
File.cs

将指定文件的内容替换为另一个文件的内容,删除原始文件并创建已替换文件的备份。

public static void Replace (string sourceFileName, string destinationFileName, string? destinationBackupFileName);
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName);

参数

sourceFileName
String

替换由 destinationFileName指定的文件的文件的名称。

destinationFileName
String

要替换的文件的名称。

destinationBackupFileName
String

备份文件的名称。

例外

destinationFileNamedestinationBackupFileName 参数描述的路径不是法律形式。

destinationFileName 参数 null

指定了无效驱动器。

找不到 sourceFileNamedestinationFileName 参数描述的文件。

打开文件时出现 I/O 错误。

-或-

sourceFileNamedestinationFileName 参数指定相同的文件。

指定的路径、文件名或两者都超过了系统定义的最大长度。

sourceFileNamedestinationFileName 参数指定只读文件。

-或-

当前平台上不支持此操作。

-或-

源或目标参数指定目录而不是文件。

-或-

调用方没有所需的权限。

-或

sourceFileNamedestinationFileName 指定相同的现有目录。

示例

下面的代码示例使用 Replace 方法将文件替换为另一个文件,并创建已替换文件的备份。

using System;
using System.IO;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string OriginalFile = "test.xml";
                string FileToReplace = "test2.xml";
                string BackUpOfFileToReplace = "test2.xml.bac";

                Console.WriteLine("Move the contents of " + OriginalFile + " into " + FileToReplace + ", delete " + OriginalFile +
                                   ", and create a backup of " + FileToReplace + ".");

                // Replace the file.
                ReplaceFile(OriginalFile, FileToReplace, BackUpOfFileToReplace);

                Console.WriteLine("Done");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }

        // Move a file into another file, delete the original, and create a backup of the replaced file.
        public static void ReplaceFile(string FileToMoveAndDelete, string FileToReplace, string BackupOfFileToReplace)
        {
            File.Replace(FileToMoveAndDelete, FileToReplace, BackupOfFileToReplace, false);
        }
    }
}

注解

Replace 方法将指定文件的内容替换为另一个文件的内容。 它还会创建已替换的文件的备份。

如果 sourceFileNamedestinationFileName 位于不同的卷上,此方法将引发异常。 如果 destinationBackupFileName 位于与源文件不同的卷上,则会删除备份文件。

如果不想创建要替换的文件的备份,请将 null 传递给 destinationBackupFileName 参数。

如果 destinationBackupFileName 已存在,则会将其替换为 destinationFileName 文件的内容。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Replace(String, String, String, Boolean)

Source:
File.cs
Source:
File.cs
Source:
File.cs

将指定文件的内容替换为另一个文件的内容,删除原始文件并创建已替换文件的备份,并选择性地忽略合并错误。

public static void Replace (string sourceFileName, string destinationFileName, string? destinationBackupFileName, bool ignoreMetadataErrors);
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);

参数

sourceFileName
String

替换由 destinationFileName指定的文件的文件的名称。

destinationFileName
String

要替换的文件的名称。

destinationBackupFileName
String

备份文件的名称。

ignoreMetadataErrors
Boolean

true 忽略替换文件中的合并错误(如属性和访问控制列表(ACL)到替换文件;否则,false

例外

destinationFileNamedestinationBackupFileName 参数描述的路径不是法律形式。

destinationFileName 参数 null

指定了无效驱动器。

找不到 sourceFileNamedestinationFileName 参数描述的文件。

打开文件时出现 I/O 错误。

-或-

sourceFileNamedestinationFileName 指定相同的文件。

指定的路径、文件名或两者都超过了系统定义的最大长度。

sourceFileNamedestinationFileName 参数指定只读文件。

-或-

当前平台上不支持此操作。

-或-

源或目标参数指定目录而不是文件。

-或-

调用方没有所需的权限。

-或

sourceFileNamedestinationFileName 指定相同的现有目录。

示例

下面的代码示例使用 Replace 方法将文件替换为另一个文件,并创建已替换文件的备份。

using System;
using System.IO;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string OriginalFile = "test.xml";
                string FileToReplace = "test2.xml";
                string BackUpOfFileToReplace = "test2.xml.bac";

                Console.WriteLine("Move the contents of " + OriginalFile + " into " + FileToReplace + ", delete " + OriginalFile +
                                   ", and create a backup of " + FileToReplace + ".");

                // Replace the file.
                ReplaceFile(OriginalFile, FileToReplace, BackUpOfFileToReplace);

                Console.WriteLine("Done");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }

        // Move a file into another file, delete the original, and create a backup of the replaced file.
        public static void ReplaceFile(string FileToMoveAndDelete, string FileToReplace, string BackupOfFileToReplace)
        {
            File.Replace(FileToMoveAndDelete, FileToReplace, BackupOfFileToReplace, false);
        }
    }
}

注解

Replace 方法将指定文件的内容替换为另一个文件的内容。 它还会创建已替换的文件的备份。

如果 sourceFileNamedestinationFileName 位于不同的卷上,此方法将引发异常。 如果 destinationBackupFileName 位于与源文件不同的卷上,则会删除备份文件。

如果不想创建要替换的文件的备份,请将 null 传递给 destinationBackupFileName 参数。

如果 destinationBackupFileName 已存在,则会将其替换为 destinationFileName 文件的内容。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1