System.IO.File.Replace 方法 (String, String, String, Boolean)

方法描述

用其他文件的内容替换指定文件的内容,删除原始文件,并创建被替换文件的备份和(可选)忽略合并错误。

语法定义(C# System.IO.File.Replace 方法 (String, String, String, Boolean) 的用法)

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

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
sourceFileName System-String 替换由 destinationFileName 指定的文件的文件名。
destinationFileName System-String 替换文件的名称。
destinationBackupFileName System-String 备份文件的名称。
ignoreMetadataErrors System-Boolean 如果忽略从被替换文件到替换文件的合并错误(如特性和访问控制列表 (ACL)),则为 true,否则为 false。
返回值 void

提示和注释

Replace 方法用其他文件的内容替换指定文件的内容。 它还创建被替换文件的备份。

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

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

System.IO.File.Replace 方法 (String, String, String, Boolean)例子

下面的代码示例使用 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);

        }
    }
}

异常

异常 异常描述
ArgumentException
  • destinationFileName 参数描述的路径不是合法的格式。
  • destinationBackupFileName 参数描述的路径不是合法的格式。
ArgumentNullException destinationFileName 参数为 null。
DriveNotFoundException 指定了无效的驱动器。
FileNotFoundException
  • 未能找到当前 FileInfo 对象所描述的文件。
  • 未能找到 destinationBackupFileName 参数所描述的文件。
IOException
  • 打开文件时发生了 I/O 错误。
  • sourceFileName 和 destinationFileName 参数指定了相同的文件。
PathTooLongException 指定的路径、文件名或者两者都超出了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
PlatformNotSupportedException 操作系统是 Windows 98 Second Edition 或更低版本,且文件系统不是 NTFS。
UnauthorizedAccessException
  • sourceFileName 或 destinationFileName 参数指定了一个只读文件。
  • 在当前平台上不支持此操作。
  • 源参数或目标参数指定的是目录,而不是文件。
  • 调用方没有所要求的权限。

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。